2012-12-04 61 views
0

我使用state_machine寶石,我想存儲每個狀態轉換。狀態機 - 記錄轉換的最佳實踐是什麼?

這只是一個創建一個名爲MyClassTransition的新模型的過渡問題:string from_state:state?並添加新的記錄,在轉換新表?

是否有更好的做法來存儲這些轉換?我需要一種日誌...

任何建議,歡迎。

回答

1

不要自己發明這個,你爲什麼不看像papertrail的東西。這是我們用來記錄我們所有的更改,並允許您回滾。

有上Railscasts一個偉大的教程:

http://asciicasts.com/episodes/255-undo-with-papertrail

+0

雖然我有問題。如何檢查版本化對象的屬性。我需要具體化嗎?我想檢查最新版本的當前對象屬性 – zabumba

+0

不,您可以檢查一個版本。給我幾分鐘,我會挖出一些東西。 – simonmorley

+1

對不起,筆記本電腦死了。如果你已經打開了,你可以使用類似於Model.find(x).versions.last.inspect的方式來檢查一個版本 - 它顯示了這個要點。你應該能夠從中得到你需要的信息?您還可以使用Model.find(x).versions.last.object,它提供了大量信息。這有幫助嗎? – simonmorley

1

你也可能想看看這個:https://github.com/wvanbergen/state_machine-audit_trail

不像Papertrail,它僅記錄狀態屬性,不支持回滾/取消/復原。如果你不需要回滾,那就更簡單了。

有時候你使用前/影響其他車型after_transition回調,你不能利用Papertrail的回滾系統。