Есть 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
Очевидно, что это не лучший подход. Я дублирую код и, что более важно, я ассоциирую обратные вызовы с конкретными переходами, когда они действительно применяются к конечному автомату в целом. Какой лучший способ справиться с этим?