我有一个代表注册过程的模型,它需要跟踪几个过程的进展(背景调查、面试、信息收集......)。每个都可以由一个状态机表示,然后注册的整体状态可能取决于其他状态。
aasm可以处理吗?还有其他想法或设计考虑吗?
我有一个代表注册过程的模型,它需要跟踪几个过程的进展(背景调查、面试、信息收集......)。每个都可以由一个状态机表示,然后注册的整体状态可能取决于其他状态。
aasm可以处理吗?还有其他想法或设计考虑吗?
由于当您在一个模型中搜索多个状态机时会出现这个问题,因此最好有一个答案,尽管已经有了答案。请尝试做:
class Example < ActiveRecord::Base
include AASM
aasm :search, :column => :search do
state :initialised, :initial => true
...
end
aasm :sync, :column => :sync do
state :unsynced, :initial => true
...
end
end
这将基于搜索和同步两列创建两个状态机。
试试这个插件,你甚至可以用它来继承其他状态机:
如果您在一个模型中需要多个状态机,它可能会变得很大,是时候拆分模型了。因此,在您的示例中,您应该添加用于背景调查、面试、信息收集的模型......