如何使用AASM跳过状态机中的状态

时间:2014-10-07 18:16:06

标签: ruby aasm

我使用红宝石AASM宝石。

有谁知道跳过某个州的正确方法是什么?

class Job
  # ...

  event :stage1_completed do
    if stage2_completed?
      transitions from: :stage1, :to => :stage3
    else
      transitions from: :stage1, :to => :stage2
    end
  end

  # ...
end

在AASM中设置此功能的最佳方法是什么?

我在一组resque作业中使用此代码,因此stage1是一个resque作业,然后更新状态并开始下一个resque作业。对于stage2,然后是stage3

1 个答案:

答案 0 :(得分:1)

您可以使用guards

event :stage1_completed do
    transitions from: :stage1, :to => :stage3, :guard => :stage2_completed? 
end