私はRails-4.2.6
、state_machine-1.2.0およびRuby-2.3
を使用しています。ステートマシンafter_transitionコールバックが更新時に動作しない
state_machine :status, initial: :initiated do
after_transition on: :succeeded, do: :oderable_success_callback
event :pending do
transition initiated: :pending
end
event :failed do
transition [:initiated, :pending] => :failed
end
event :succeeded do
transition [:initiated, :pending] => :succeeded
end
end
def oderable_success_callback
orderable.successful_payment
end
次のような順序を更新すると、after_transitionコールバックがトリガーされます。
order.succeeded
が、私は
order.update(status: 'succeeded')
status
として順序を更新して文句を言わないトリガーのコールバックは、 'succeeded
' に更新しますが、コールバックをトリガするために失敗しています。
after_transition
コールバックを通常のupdate
でトリガーするにはどうすればよいですか。
は、応答をありがとうございました。実際に私はステータスに応じて複数のコールバックを持っています。私がこれのようにトリガーするなら、多くのif/elseが書く必要があります。 –