10

メッセージ プライベート システムと注文ステータス システム用のステート マシンが必要です。

次の 2 つの宝石が表示されます。

https://github.com/pluginaweek/state_machine

https://github.com/rubyist/aasm

編集済み..

私はmongodbデータベースでmongoidを使用しています

この機能に最も適した宝石はどれですか?

4

1 に答える 1

14

アップデート:

最近の RailsCast: A Tour of State Machines をチェックしてください

前の回答:

どちらの gem もうまく機能し、Mongoid と互換性があり、積極的にメンテナンスされています。

私は過去に AASM を使用したことがあり、もう少し長く使用されていましたが、state_machine gem にはかなり多くの機能とオプションがあります。たとえば、基本クラスの state_machine によって生成されたメソッドを確認します (例の下にあります)。遷移コールバック、条件付き遷移など、より詳細を定義できます。パス分析を行うことができます。状態グラフの素敵な図を生成するための GraphViz ジェネレーターもあります。

単純なステート マシンだけが必要な場合は、AASM を使用できます。条件遷移や遷移コールバック、パス分析などの詳細をモデル化する必要がある場合、状態に関するクエリを頻繁に実行する必要がある場合、またはネストされたステート マシンが必要な場合は、state_machine gem を使用してください。

参考文献:

AASM : https://github.com/aasm/aasm

state_machine : https://github.com/pluginaweek/state_machine

state_machine に関する追加情報:

http://www.pluginaweek.org/2009/03/08/state_machine-one-machine-to-rule-them-all/

http://rdoc.info:8080/github/pluginaweek/state_machine/master/StateMachine/Machine

于 2012-10-02T18:50:01.250 に答える