如何记录Ruby中Workflow Gem状态的变化

时间:2013-02-26 16:20:52

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

我在我的Rails应用程序中使用Workflow gem(https://github.com/geekq/workflow)作为状态机。当一个对象经过各种状态时,我想记录它发生变化时的日期时间,但不太确定它是否如此简单。

我可能采取的一种方法是一个名为'workflow_state_date_changed'的额外列,并在状态发生变化时更新此列 - 这是我可以看到对象处于特定状态的时间。然而,它不允许在历史上看到它经过的所有状态,以及每个状态所花费的时间。有没有想过以一种相当轻松的方式实现这一目标的方法?

期待您的回复。

3 个答案:

答案 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它非常强大,你可以很容易地做到

https://github.com/pluginaweek/state_machine