【发布时间】:2011-06-03 15:53:52
【问题描述】:
我有一个模型,成员可以更新,但在管理员批准他们的更改之前,他们的更改不会生效。有没有人解决过同样的问题,你会推荐哪些 gems 来进行版本控制?纸轨?维斯塔版本?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
我有一个模型,成员可以更新,但在管理员批准他们的更改之前,他们的更改不会生效。有没有人解决过同样的问题,你会推荐哪些 gems 来进行版本控制?纸轨?维斯塔版本?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
也许您可以稍微改变一下使用vestal_versions。如果进行更改的用户不是管理员,则在您的控制器中添加一个 after_update 操作,该操作将回滚到以前的版本。然后您可以将实例的状态设置为待处理,这会提醒管理员进行审核。然后,管理员只需查看最新版本并在获得批准后将其上移。
# 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
【讨论】: