我在我的Rails应用程序中使用Workflow gem(https://github.com/geekq/workflow)作为状态机。当一个对象经过各种状态时,我想记录它发生变化时的日期时间,但不太确定它是否如此简单。
我可能采取的一种方法是一个名为'workflow_state_date_changed'的额外列,并在状态发生变化时更新此列 - 这是我可以看到对象处于特定状态的时间。然而,它不允许在历史上看到它经过的所有状态,以及每个状态所花费的时间。有没有想过以一种相当轻松的方式实现这一目标的方法?
期待您的回复。
答案 0 :(得分:0)
您可以使用ActiveRecord::Observer记录属性上的事件。如果您使用StateMachine,则支持对after_transition
等不同方法进行观察。我不知道Observer
workflow
如何使用{{1}}
答案 1 :(得分:0)
我最终建立了一个解决方案,跟随Ryan Bate的精彩截屏:
http://railscasts.com/episodes/392-a-tour-of-state-machines?view=asciicast
答案 2 :(得分:0)
使用state_machine gem它非常强大,你可以很容易地做到