2016-08-19 9 views
1

state_machine宝石を考えると、与えられた状態の前に来る状態名/記号のセットをどのように選択するのですか?Ruby `state_machine` gemで特定の状態の前に来る状態のリストを取得するには?

私は、4つの状態::pending,:signature_needed,:ordered,:finalizedと言うことができます。初期(:pending)から最終(:finalized)状態への線形進行を仮定する。

:orderedより前に来るすべての州をどのように取得できますか?私はのような結果を期待します。

注:この機能が提供されない理由を理解しようとした後、state_machinenot currently supportedです(この機能を追加したPRを作成する予定だったので)。

+0

ステートマシンを設定するコードを投稿できますか?それは、与えられた状態に先立つ状態を導出するコードを理解することをより簡単にするでしょう。 – kcdragon

+2

これは本当に可能ですか?私は宝石自体に精通していませんが、複数の状態経路がある場合はどうなりますか?望ましい行動は何でしょうか? –

+0

私は@SebastianLenartowiczと一緒にいます - これは、どういう状態が ':ordered'の前に来るかを明示的に定義することなく可能であれば好奇心が強いでしょう。 – CDub

答えて

0

(現在は維持されていない)state_machine gemにはそのような機能は組み込まれていません。非線形の状態遷移に対して完全に可能であるので、「どの状態が別の状態よりも前に来るか」を正確に記述することは、非常に複雑であり、予測不能である可能性がある。したがって、state_machine宝石を利用する各アプリケーションは、サイクルのどの状態が相互に前後するかを動的に決定するために、独自のミックスインを作成する必要があります。

答えのクレジットはOPの下のコメントに行きます。

関連する問題