Моделирование вложенных состояний в рельсах

Мне не удалось найти документацию/учебники/вопросы и ответы о том, как моделировать вложенные состояния в рельсах.

Есть ли способ сделать это с помощью драгоценного камня state_machine? (или другой камень)

Моя конкретная ситуация заключается в том, что у меня есть объект, который имеет состояние. Это может быть:

'scheduled', 'on-shift' or 'past'

Кроме того, 'on-shift' может иметь состояние:

'available', 'busy' or 'inactive'

Как я могу смоделировать эти состояния?


person user3711600    schedule 04.10.2014    source источник


Ответы (1)


трудно точно знать, что сработает для вас без более подробной информации, но на данный момент я инстинктивно хотел бы иметь 5 состояний: %w(scheduled available busy inactive past)

тогда у вас могут быть дополнительные методы для имитации состояния «включено», например:

def on_shift?
  %w(available busy inactive).include? state
end

(Я предполагаю, что state является текущим состоянием, но если нет, вы можете заменить его тем, как вы получаете доступ к текущему состоянию объекта.

person John    schedule 05.10.2014