带批准的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。 它允许您创建数据库记录的草稿版本。 在这里阅读更多。 您必须添加管理界面。
- 在Rails 4.0上安装Ruby时出错 – atomic_reference.c错误71
- Ruby 1.8和UTF-8字符串case语句比较
- Heroku-无法在任何来源中找到paperclip-3.1.3
- rails model has_many:通过关联
- Rails非正统命名模型与缩写
- 使用自动完成function编写的Cucumber IDE?
- DEPRECATION WARNING:使用非属性参数调用的危险查询方法(其参数用作原始SQL的方法)
- 在VirtualBox上的Ubuntu 11.10上的Rails 3.1非常慢
- object.valid? 返回false但object.errors.full_messages为空