2012-03-21 1 views
2

Я использую эту государственную машину, чтобы управлять «состоянием» атрибут на инвайтый объектИспользования state_machine

https://github.com/pluginaweek/state_machine

Я хочу иметь send_invite метода множество государства «отправку», посылает пригласить, а затем устанавливает состояние «отправлено» или «can_not_send», есть некоторая ошибка

Похоже, я должен быть в состоянии сделать это в DSL конечного автомата, не так ли?

Или я должен просто добавить обычный метод?

state_machine :initial => :pending do 
     event :send do 
      transition :pending => :sending 
     end 

     event :invite_sent do 
      transition :sending => :invited 
     end 

     event :error_sending do 
      transition :sending => :error 
     end  
    end 

    def send_invite 
     send 
     try 
     .... code to send invite... 
     invite_sent 
     catch 
      error_sending! 
     end 
    end 

Благодаря

ответ

0

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