2

我在 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。

有什么建议么?

4

1 回答 1

1

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

Order.state_events
Order.state_transitions

Order.state_paths.from_name
Order.state_paths.to_name

检查实例方法的文档

于 2012-12-30T22:51:21.067 回答