带批准的Rails模型版本控制

我有一个模型,成员将能够更新,但他们的更改将不会生效,直到管理员批准他们的更改。 有没有人解决过同样的问题,你会推荐哪些gem用于版本控制? PaperTrail? Vestal版本?

也许你可以使用轻微扭曲的vestal_versions 。 在控制器中添加after_update操作,如果进行更改的用户不是管理员,则会回滚到先前版本。 然后,您可以将实例的状态设置为pending,这将提醒管理员进行审核。 然后管理员只需查看最新版本并在批准后将其移动。

# model_controller.rb after_update :rollback_if_not_admin def rollback_if_not_admin unless current_user.admin? #roll back changes version = @model_instance.versions.count if version > 1 @model_instance.reset_to!(version - 1) @model_instance.status = "pending" end flash[:notice] = "Your changes will be reflected once an admin has reviewed them" redirect_to @model_instance end 

有一个绘图员gem。 它允许您创建数据库记录的草稿版本。 在这里阅读更多。 您必须添加管理界面。