web-dev-qa-db-ja.com

state_machine状態のリストを取得します

プロジェクトでstate_machine( https://github.com/pluginaweek/state_machine )を使用しており、状態を選択できるselect付きのフォームを提供したいと考えています。 (これは検索用であり、設定用ではありません)。考えられるすべての状態を一覧表示する方法が見つからないようです。確かに、テキストのリストをどこかにハードコーディングする必要がなく、これを自動的に行う方法があるはずです。ありがとう!

47
phil

何かのようなもの:

User.state_machine.states.map &:name
73
jwarchol

これに追加するために(私は常にこの答えを探しており、常にこのページに戻ってくるため)、特定のステートマシンの状態を一覧表示しようとしている場合は、次のことを試してください。

Discussion.state_machines[:name_of_state].states.map &:name
68
fakingfantastic

状態フィールドに別の名前を付ける場合(publish_statusなど)

Article.state_machines[:publish_status].states.map &:name
5
wizztjh