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

最終状態は二重丸で囲まれています。レーキタスクのソースから一目でそれを取得できませんでした。

初期状態を取得するのは簡単なようです。

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