我有一个模型,成员将能够更新,但他们的更改将不会生效,直到管理员批准其更改。有没有人解决了这个相同的问题,你会推荐什么宝石版本? PaperTrail? Vestal版本?Rails模型版本与审批
6
A
回答
7
也许你可以使用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
1
正确的链接是https://github.com/laserlemon/vestal_versions,但这个宝石没有维护 – dpaluy 2015-08-24 12:05:40