2011-07-06 1 views
1

Есть ли проблема с добавлением цикла в конечный автомат для плагина rails act_as_state_machine?Действует как цикл автомата состояния

Я пытаюсь сделать что-то вроде этого и не работает:

state :not_sent 
state :sent 

event :test do 
transitions :from => :not_sent, :to => :sent 
transitions :from => :sent, :to => :sent 
end 

Я хочу, чтобы это сделать, потому что состояние машины для состояния электронной почты. Там больше говорится, что те, которые я показал здесь, но по практическим соображениям я просто показываю раздел, касающийся цикла.

Итак, теперь я хотел бы добавить возможность отправки сообщения. Поэтому я подумал о добавлении цикла в конечный автомат, но он не работает. Я пытаюсь добавить новое состояние «resend», только для целей отладки, и это сработало. Но мне нужно каким-то образом создать цикл на конечной машине.

ответ

2

Вы на самом деле ничего не зацикливаете, хотя может показаться, что это так. Если ваши начальные и конечные состояния одинаковы, вы не делаете переход, и aasm пропустит его, IIRC. Обычная причина желания сделать что-то подобное - повторить некоторую логику, которая является частью перехода; в этом случае я заменил бы переход вызовом метода или добавлю промежуточное состояние, например: resending, которое затем сразу перейдет обратно в отправленное состояние после повторной работы.

 Смежные вопросы

  • Нет связанных вопросов^_^