我有一个名为Creative
的Rails模型,该模型使用aasm
gem来实现工作流程。目前,我的模型中仅实现了一个工作流程。
我有一个业务场景,要求我在同一模型中实施另一个工作流,如果模型上的布尔值是true
,则会激活该工作流。
我看到2种可行的方法
Creative
相同的表名的新模型,并在那里实现工作流程可以在这里实现的好的设计是什么?
我知道这是一个非常开放的问题,如果有人遇到过这种情况,我希望获得建议
答案 0 :(得分:1)
我认为类似的东西应该起作用。
event :promote do
transitions :from => [:pending], :to => :in_progress, :guard => :boolean_check?
transitions :from => [:pending], :to => :done
end
event :complete do
transitions :from => [:in_progress], :to => :done, :guard => :boolean_check?
end
private
def boolean_check?
self.boolean_column
end
如果布尔值为true,则流程为
pending > in_progress > done
其他
pending > done
注意:如果假设您有3-4个工作流程,这可能会变得很复杂。
没有两个工作流程就可以了