Я использую гем state_machine. Я уже успешно использую гем state_machine на одной из своих моделей, но не могу заставить его работать на другой. В моей модели задач вот конечный автомат:
state_machine :state, :initial => :incomplete do
event :task_finished do
transition :incomplete => :needs_approval
end
end
Когда создается новая задача, столбец состояния изначально устанавливается как незавершенный, поэтому я знаю, что state_machine отчасти работает. Проблема в том, что в задаче rake я вызываю событие :task_finished, но оно не работает. Вот задача грабли:
task :change_it => :environment do
puts "task is working"
@tasks = Task.already_expired
@tasks.each do |tasko|
tasko.task_finished
puts "Kalabar" + tasko.inspect + "now time is:" + DateTime.now.to_s
puts "time_frame is:" + tasko.time_frame.to_s
end
end
Как заставить его работать?
Задача завершается, потому что операторы put помещаются на сервер, но состояние не меняется с :incomplete на :needs_approval, как должно. Как это исправить?