【问题标题】:Rails Model Versioning with Approval带有批准的 Rails 模型版本控制
【发布时间】:2011-06-03 15:53:52
【问题描述】:

我有一个模型,成员可以更新,但在管理员批准他们的更改之前,他们的更改不会生效。有没有人解决过同样的问题,你会推荐哪些 gems 来进行版本控制?纸轨?维斯塔版本?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    也许您可以稍微改变一下使用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
    

    【讨论】:

    【解决方案2】:

    有一个Draftsman 宝石。它允许您创建数据库记录的草稿版本。阅读更多here。您必须添加一个管理界面。

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 1970-01-01
      • 2017-05-19
      • 2011-10-18
      • 2010-10-19
      • 2016-05-22
      • 2016-03-21
      • 1970-01-01
      • 2016-10-29
      相关资源
      最近更新 更多