状态机,命名下一个和以前的状态

时间:2012-12-02 21:28:35

标签: ruby-on-rails-3 state-machine

我在我的Rails 3.2.9应用程序中使用state_machine gem,并试图获取下一个状态的名称。

我可以列出所有州:

 Order.state_machine.states.map &:name

但我无法在文档中看到是否有可能获得下一个州的名称。

我的模型中有这样的东西:

  state_machine :initial => 'stage_1', :use_transactions => false do
    event :next do
      transition :from => 'stage_1', :to => 'stage_2'
      transition :from => 'stage_2', :to => 'stage_3', :if => :is_valid?
      transition :from => 'stage_2', :to => 'stage_4'

如果我在state_2上,我想显示stage_3。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以简单地使用辅助方法,如

Order.state_events
Order.state_transitions

Order.state_paths.from_name
Order.state_paths.to_name

查看instance methods

上的文档