get list of state_machine states

2019-01-17 14:07发布

问题:

We are using state_machine ( https://github.com/pluginaweek/state_machine ) in a project and would like to offer a form with a select that lets us choose a state. (this is for searching, not for setting). I can't seem to find a way to list out all the possible states? Surely there should be an automatic way of doing this, not having to hard-code a list of text somewhere. Thanks!

回答1:

Something like:

User.state_machine.states.map &:name


回答2:

Just to add to this (because I'm constantly searching for this answer, and I always come back to this page), if you are trying to list the states for a giving state machine, try this:

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


回答3:

If you name your state field differently , such as publish_status

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