Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

get list of state_machine states

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!

like image 714
phil Avatar asked Nov 09 '10 20:11

phil


3 Answers

Something like:

User.state_machine.states.map &:name
like image 136
jwarchol Avatar answered Oct 17 '22 06:10

jwarchol


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
like image 21
fakingfantastic Avatar answered Oct 17 '22 07:10

fakingfantastic


If you name your state field differently , such as publish_status

Article.state_machines[:publish_status].states.map &:name
like image 38
wizztjh Avatar answered Oct 17 '22 07:10

wizztjh