每次状态转换后我都想调用 2 种方法。现在我正在做:
aasm_event :nominate_for_publishing, :before => [:set_state_last_updated_by, :set_state_updated_at] do
transitions :to => :under_review, :from => [:work_in_progress]
end
aasm_event :publish, :before => [:set_state_last_updated_by, :set_state_updated_at] do
transitions :to => :published, :from => [:work_in_progress, :under_review], :guard => :is_publishable?
end
aasm_event :unpublish, :before => [:set_state_last_updated_by, :set_state_updated_at] do
transitions :to => :work_in_progress, :from => [:published, :under_review]
end
显然这不是最好的方法。我在复制代码,更重要的是,当回调真正应用于整个状态机时,我将它们与特定转换相关联。有什么更好的方法来处理这个?