私は一連のアクションを実行できるStudentモデルを持っています。最新のアクションのためにstate_machineを作成します。私は、この関数は最後のアクションのタイミングを記録することになると思ったstate_machineでの遷移タイミングを記録するRails
def after_transition(student, transition)
student.last_action_at = Time.now
end
(:
state_machine :last_action, :initial => :get_invited do
event :enroll do
transition [:get_invited, :accept, :schedule] => :enroll
end
end
は、私は次のように最後のアクションの時間を記録するためのActiveRecord ::オブザーバーを拡張StudentObserverクラスを作成します最後の行動が何であっても)。どういうわけか、それはうまくいきません。私が1つの状態から別の状態に正常に移行したとしても、私はlast_action_atの空フィールドを持っています。
私は間違って何をしましたか?どのようにして最新の取引のタイミングを把握できますか?
ありがとうございます。
移行後にレコードを保存していますか? –
私はstate_machineが自動的にレコードを保存すると思います。いずれにしても、各取引後に自分のレコードの状態が更新されているのがわかります。 – AdamNYC