Rails与工作流gem重新连接

时间:2016-08-22 07:39:15

标签: ruby-on-rails rubygems workflow

我能用rails工作流gem重新接受已经接受的对象吗?

我的商业案例:

  1. 用户想要更新公开个人资料数据。
  2. 每次更新时,管理员都必须查看对数据所做的更改
  3. 管理员接受更改,之后数据对公众可见
  4. 用户再次更改数据(更新操作),并且必须再次审核新更改。
  5. 管理员再次审核并接受。
  6. 那么我的workflow应该是什么?截至目前看起来像这样:

     include Workflow
      workflow do
        state :new do
          event :submit, :transitions_to => :awaiting_review
        end
        state :update do
          event :submit, :transitions_to => :awaiting_review
        end
        state :awaiting_review do
          event :review, :transitions_to => :being_reviewed
        end
        state :being_reviewed do
          event :accept, :transitions_to => :accepted
          event :reject, :transitions_to => :rejected
        end
        state :accepted
        state :rejected
      end
    

    我的问题是,一旦我将对象的状态更改为已接受,我就无法在第二次更新时返回awaiting_review。 任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

当我使用工作流gem时,我会创建另一个事件来向后转换。

state :accepted do
  event :submit, :transitions_to => :awaiting_review
end

我会保留submit事件名称,以便在配置文件为新的,更新或已接受状态时调用它。