2012-01-05 26 views
4

我在rails上使用state_machine開發狀態機,這裏我根據條件狀態將會改變到另一個狀態,這裏我定義了不同的狀態。這裏我的問題是如何獲得以前的狀態?而我的第二個問題是如何列出狀態機中的所有狀態?在state_machine rails中獲取以前的狀態

我會用例子來解釋我的問題,比如說我有3個狀態說 state1,state2,state3最初它會在state1中。當事件1是 從狀態1 =>狀態2執行狀態更改,現在我想知道 這是我以前的狀態。善意地幫助我解決這個問題。

回答

1

如果你正在尋找一個物體以前的狀態列表,恐怕你不能。 state_machine只更改模型數據庫寄存器中的列值,不存儲任何類型的歷史記錄。

請檢查諸如acts_as_versioned(https://github.com/technoweenie/acts_as_versioned)等解決方案以存儲和播放您的型號版本。

而且要檢查AASM寶石https://github.com/rubyist/aasm

乾杯

+0

嘿感謝回覆,改變寶石不是我的好主意,但是有沒有什麼邏輯可以達到目的 – 2012-01-05 13:11:14

1

我用paper_trail寶石 和通用的以前的版本。

這使我可以跟蹤對象經歷的狀態序列。

藉助paper_trail,您甚至可以檢索該狀態更改的發起者或終止者。

相關問題