在rails插件acts_as_state_machine的状态机中添加循环有什么问题吗?
我正在尝试做这样的事情,但没有起作用:
state :not_sent
state :sent
event :test do
transitions :from => :not_sent, :to => :sent
transitions :from => :sent, :to => :sent
end我之所以这样做,是因为状态机用于电子邮件的状态。这里有我在这里展示的更多的状态,但出于实际原因,我只是显示了与循环有关的部分。
因此,现在,我想添加重新发送消息的可能性。所以我想在状态机中添加一个循环,但它不起作用。我试着添加新的状态"resend",只是为了调试的目的,它起作用了。但是我需要一些方法在状态机中创建一个循环。
发布于 2011-07-07 07:46:48
您实际上并没有循环任何东西,尽管看起来可能是这样的。如果你的开始和结束状态是相同的,你不是在进行转换,aasm将跳过它,IIRC。想要这样做的正常原因是重复一些作为转换的一部分的逻辑;在这种情况下,我会用一个方法调用替换转换,或者添加一个中间状态,如:resending,然后在重做您要做的工作后立即转换回sent状态。
https://stackoverflow.com/questions/6603724
复制相似问题