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社員のためにここに残しました!