我正在使用轨道上的state_machine开发状态机,这里我有不同的状态,根据条件状态将更改为另一个状态。在这里,我的问题是如何获得以前的状态?我的第二个问题是如何列出状态机中的所有状态?
我将用例子解释我的问题说我有3个州说 state1,state2,state3最初将处于state1。当event1是 从state1 => state2执行状态更改,现在我想知道 这是我以前的状态。请帮我解决这个问题。
答案 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)
答案 3 :(得分:1)
我用过paper_trail gem 并修改了以前的版本。
这允许我跟踪对象经历的状态序列。
使用paper_trail,您甚至可以检索该状态更改的发起者或终结者。