2

StateMachine 库中有一个方法可以获取状态列表

ModelName.state_machines[:name_of_state].states.map &:name

或者

ModelName.state_machines.states.map &:name

当包含状态的属性名称是默认的“状态”时。

但是,我想知道是否有办法找到最终的状态机,因为如果你用

rake state_machine:draw FILE=model.rb CLASS=ModelName

最后的状态是双圈的。乍一看,我无法从 rake 任务的来源中获得它。

获取初始状态似乎很容易:

ModelName.state_machines[:name_of_state].states.select(&:initial).map(&:name)

更新

哦,德拉斯!这很简单:

ModelName.state_machines[:name_of_state].states.select(&:final?).map(&:name)

留给未来的 Google 员工!

4

0 回答 0