我有一個模型,成員將能夠更新,但他們的更改將不會生效,直到管理員批准其更改。有沒有人解決了這個相同的問題,你會推薦什麼寶石版本? 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