2

Rails アプリでWorkflow gem ( https://github.com/geekq/workflow ) をステート マシンとして使用しています。オブジェクトがさまざまな状態を通過するときに、変更された日時を記録したいと思いますが、それが簡単かどうかはわかりません。

私がとるアプローチの 1 つは、「workflow_state_date_changed」という追加の列を 1 つ追加し、状態が変化するたびにこの列を更新することです。これにより、オブジェクトが特定の状態にどれくらいの期間留まっているかを確認できました。ただし、過去のすべての状態と、それぞれに費やされた時間を歴史的に調べることは許可されません。かなり軽い方法でこれを達成する方法について何か考えはありますか?

あなたからのお便りを楽しみにしています。

4

3 に答える 3

0

Ryan Bate の次の優れたスクリーンキャストに従って、ソリューションをゼロから構築することになりました。

http://railscasts.com/episodes/392-a-tour-of-state-machines?view=asciicast

于 2013-02-26T16:49:34.320 に答える
0

ActiveRecord::Observerを使用して、属性のイベントを記録できます。StateMachineを使用すると、 のようなさまざまなメソッドの監視がサポートされますafter_transitionObserverどのように使用できるかわかりませんworkflow

于 2013-02-26T16:42:57.583 に答える