rails state_machine:如何触发操作:初始状态?

zab*_*mba 5 ruby-on-rails state-machine

这就是我所拥有的:

state_machine :state, :initial => :open do
    after_transition :on => :buy, :do => :send_buy_notification_email
    after_transition :on => :take, :do => :send_take_notification_email
    after_transition :on => :accept, :do => :send_accept_notification_email
    after_transition :on => :cancel, :do => :send_cancel_notification_email
Run Code Online (Sandbox Code Playgroud)

现在我想在初始状态打开时触发:send_trade_notification_email.

我怎么做?

干杯,

乔尔

mik*_*ked 4

由于状态转换类似于“通常的”AR 回调,也许您的方法应该在 after_create 回调中触发?毕竟,您的转换是从 nil 到 open,这将在创建时发生:

 after_create :send_trade_notification_email
Run Code Online (Sandbox Code Playgroud)

如果允许的话,将完成与以下相同的事情:

 after_transition :on=>:create, :do=>:send_trade_notification_email
Run Code Online (Sandbox Code Playgroud)