在state_machine rails中获取先前的状态

时间:2012-01-05 12:36:21

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

我正在使用轨道上的state_machine开发状态机,这里我有不同的状态,根据条件状态将更改为另一个状态。在这里,我的问题是如何获得以前的状态?我的第二个问题是如何列出状态机中的所有状态?

  

我将用例子解释我的问题说我有3个州说   state1,state2,state3最初将处于state1。当event1是   从state1 => state2执行状态更改,现在我想知道   这是我以前的状态。请帮我解决这个问题。

4 个答案:

答案 0 :(得分:2)

我遇到了类似的情况,找到了适合我的合适答案。 可能这可以帮助你https://stackoverflow.com/a/5807839/176297

答案 1 :(得分:1)

如果你正在寻找一个物体的先前状态列表,我恐怕你不能。 state_machine只更改模型数据库寄存器中的列值,不存储任何类型的历史记录。

请检查act_as_versioned(https://github.com/technoweenie/acts_as_versioned)等解决方案,以存储和播放您的模型版本。

您还要查看aasm gem https://github.com/rubyist/aasm

干杯

答案 2 :(得分:1)

这可能是您正在寻找的内容:https://github.com/wvanbergen/state_machine-audit_trail

答案 3 :(得分:1)

我用过paper_trail gem 并修改了以前的版本。

这允许我跟踪对象经历的状态序列。

使用paper_trail,您甚至可以检索该状态更改的发起者或终结者。