для реализации состояний в объекте используй gem state_machine https://github.com/pluginaweek/state_machine или ему подобный