私は登録プロセスを表すモデルを持っています。これは、いくつかのプロセス(身元調査、インタビュー、情報収集など)の進行を追跡する必要があります。それぞれをステートマシンで表すことができ、登録の全体的な状態は他の状態に依存する可能性があります。
aasmはこれを処理できますか?他のアイデアや設計上の考慮事項はありますか?
私は登録プロセスを表すモデルを持っています。これは、いくつかのプロセス(身元調査、インタビュー、情報収集など)の進行を追跡する必要があります。それぞれをステートマシンで表すことができ、登録の全体的な状態は他の状態に依存する可能性があります。
aasmはこれを処理できますか?他のアイデアや設計上の考慮事項はありますか?
この質問は、1 つのモデルで複数のステート マシンをググると出てくるので、既に回答がありますが、回答があるとよいでしょう。やってみてください:
class Example < ActiveRecord::Base
include AASM
aasm :search, :column => :search do
state :initialised, :initial => true
...
end
aasm :sync, :column => :sync do
state :unsynced, :initial => true
...
end
end
これにより、検索と同期の 2 つの列に基づいて 2 つのステート マシンが作成されます。
このプラグインを試してください。このプラグインを使用して、他のステートマシンから継承することもできます。
1つのモデルに複数のステートマシンが必要な場合は、おそらく大きくなり、モデルを分割するときが来ています。したがって、あなたの例では、身元調査、インタビュー、情報収集のためのモデルを追加する必要があります...