2010-11-09 48 views
41

我們在項目中使用state_machine(https://github.com/pluginaweek/state_machine),並希望提供一個表單,讓我們選擇一個狀態。 (這是爲了搜索,而不是設置)。 我似乎無法找到一種方式列出所有可能的狀態?當然,應該有一種自動的方式來做到這一點,而不必在某個地方對文本列表進行硬編碼。 謝謝!獲取state_machine狀態列表

回答

66

喜歡的東西:

User.state_machine.states.map &:name 
+0

謝謝!這就是訣竅。 – phil 2010-11-09 23:05:32

64

只需添加到這個(因爲我一直在尋找這個答案,我總是回到這個頁面),如果你想列出會員國爲給狀態機,試試這個:

Discussion.state_machines[:name_of_state].states.map &:name 
+4

謝謝,這樣好多了。接受的答案只處理我猜測的默認值,而且我需要我的自定義字段「狀態」的狀態。再次感謝! – 2011-03-30 19:55:27

+0

確保在你的類中使用狀態機聲明之後,這條線會出現。 – 2011-08-25 15:55:14

5

如果不同的命名狀態字段,如publish_status

Article.state_machines[:publish_status].states.map &:name 
相關問題