나는 일련의 작업을 수행 할 수있는 학생 모델이 있습니다. 최신 액션을위한 state_machine을 만듭니다. 나는이 기능은 마지막 동작의 타이밍을 기록합니다 생각state_machine에서 전환의 기록 타이밍 레일
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
나는 다음과 같은 마지막 작업의 시간을 기록 액티브 :: 옵저버를 확장하는 StudentObserver 클래스를 생성 마지막 행동이 무엇이든간에). 어떻게 든 그것은 작동하지 않으며, 내가 하나에서 다른 상태로 성공적으로 통과하더라도 last_action_at의 빈 필드를 얻게됩니다.
내가 뭘 잘못 했습니까? 최신 거래의시기를 어떻게 알 수 있습니까?
감사합니다.
전환 후 레코드를 저장 하시겠습니까? –
state_machine이 자동으로 레코드를 저장한다고 생각합니다. 어떤 경우에도 각 거래 후에 내 레코드의 상태가 업데이트 된 것을 볼 수 있습니다. – AdamNYC