Вот мой пример кода:
class Foo < ActiveRecord::Base
include AASM
aasm_column :status
aasm_initial_state :start_state
aasm_state :start_state
aasm_state :state_two
aasm_state :end_state
aasm_event :move_to_two, :guard => :guard_callback, :after => :after_callback do
transitions :from => :start_state, :to => :state_two
end
def guard_callback
puts "executing guard callback..."
false
end
def after_callback
puts "executing after callback..."
end
Это игрушечное представление о том, как выглядит мой код.Я только возвращаю false из защитного обратного вызова, чтобы проверить поведение НЕ выполняя переход или после.Вот код, который я вызываю в моем тесте
foo = Foo.new
foo.move_to_two!
puts "foo's current status: #{foo.status}"
Вот вывод
executing after callback...
foo's current status: state_two
Обратите внимание, что охранник никогда не вызывается ...
Я ставлюохранник не в том месте?Я ошибаюсь, что возвращение false остановит переход?Означает ли остановка перехода игнорирование обратного вызова?Или он всегда будет выполнять после, несмотря ни на что?
Если эта последняя вещь верна, как мне передать состояние в этот обратный вызов?
заранее спасибо, и дайте мне знать, если вам нужна дополнительная информация ...
* 1018 юлианский день *