状态机 - 记录过渡的最佳做法是什么?

时间:2012-12-04 19:58:47

标签: ruby-on-rails-3 state-machine

我正在使用state_machine gem,我想存储每个状态转换。

是否只需要创建一个名为MyClassTransition的新模型,其中包含一个转换:string from_state:state?并在转换新表中添加新记录?

存储这些过渡是否有更好的做法?我需要一种日志......

欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

不要自己发明这个,为什么不看看像papertrail这样的东西。这是我们用来记录所有更改的内容,它允许您回滚。

有关Railscasts的精彩教程:

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

答案 1 :(得分:1)

您可能还想查看此内容:https://github.com/wvanbergen/state_machine-audit_trail

与Papertrail不同,它只记录state属性,不支持rollback / undo / revert。如果您不需要回滚,则更简单。

有时你使用影响其他模型的before / after_transition回调,你无法利用Papertrail的回滚系统。