Получение предыдущих состояний в рельсах state_machine - PullRequest
4 голосов
/ 05 января 2012

Я разрабатываю конечный автомат, используя state_machine на рельсах, здесь у меня есть различные состояния, которые определены, исходя из условий, состояние изменится на другое состояние.Вот мой вопрос, как получить предыдущее состояние?и мой второй вопрос: как перечислить все состояния в конечном автомате?

Я объясню свой вопрос на примере, скажем, у меня есть 3 состояния, скажем, state1, state2, state3, первоначально он будет в состоянии1когда выполняется событие1, состояние меняется с состояния1 => состояние2, теперь я хотел узнать, какое у меня предыдущее состояние.пожалуйста, помогите мне разобраться в этом.

Ответы [ 4 ]

2 голосов
/ 14 февраля 2013

Я застрял в подобном случае и нашел подходящий ответ, который работает для меня.Может быть, это может помочь вам https://stackoverflow.com/a/5807839/176297

1 голос
/ 27 февраля 2013

Я использовал бумагу paper_trail и обновил предыдущие версии.

Это позволяет мне следить за последовательностью состояний, через которые прошел объект.

С помощью paper_trail вы даже можете получить оригинатор или терминаторэтого изменения состояния.

1 голос
/ 06 января 2012

Это может быть то, что вы ищете: https://github.com/wvanbergen/state_machine-audit_trail

1 голос
/ 05 января 2012

Если вы ищете список предыдущих состояний объекта, я боюсь, что вы не сможете.state_machine только изменяет значение столбца в регистре базы данных моделей, но не хранит историю любого типа.

Пожалуйста, проверьте решения, такие как Act_as_versioned (https://github.com/technoweenie/acts_as_versioned), для хранения и воспроизведения версий ваших моделей.

Также вы хотите проверить aasm gem https://github.com/rubyist/aasm

Cheers

...