У меня есть модель Student, которая может выполнять ряд действий. Я создаю state_machine для последних действий.
state_machine :last_action, :initial => :get_invited do
event :enroll do
transition [:get_invited, :accept, :schedule] => :enroll
end
end
Я создаю класс StudentObserver, который расширяет ActiveRecord :: Observer для записи времени последнего действия следующим образом:
def after_transition(student, transition)
student.last_action_at = Time.now
end
Я думал, что эта функция запишет время последнего действия (независимо от того, какое последнее действие). Почему-то это не работает, и я получил пустое поле last_action_at, даже если я успешно перешел из одного состояния в другое.
Что я сделал неправильно? Как я могу зафиксировать время последней транзакции?
Спасибо.