获取state_machine状态列表

phi*_*hil 46 ruby-on-rails state-machine

我们在项目中使用state_machine(https://github.com/pluginaweek/state_machine),并希望提供一个带有select的表单,让我们选择一个州.(这是用于搜索,而不是用于设置).我似乎无法找到列出所有可能状态的方法?当然应该有一种自动执行此操作的方法,而不必在某处硬编码文本列表.谢谢!

jwa*_*hol 74

就像是:

User.state_machine.states.map &:name
Run Code Online (Sandbox Code Playgroud)


fak*_*tic 68

只是为了增加这个(因为我一直在寻找这个答案,我总是回到这个页面),如果你想列出给定状态机的状态,试试这个:

Discussion.state_machines[:name_of_state].states.map &:name
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这要好得多.接受的答案只处理我猜的默认值,我需要自定义字段"status"的状态.再次感谢! (4认同)

wiz*_*tjh 5

如果以不同方式命名州字段,例如publish_status

Article.state_machines[:publish_status].states.map &:name
Run Code Online (Sandbox Code Playgroud)