1

私はAASMを初めて使用し、状態:newstateに移行できるMyModelモデルのすべての状態のリストを取得しようとしています。

したがって、たとえば:

  aasm_event :finish do
    transitions :to => :finalstate, :from => [:start, :working]
  end

基本的に、モデルを介して[:start、:working]配列を返したいので、

MyModel.aasm_events.finish.transitions.from

しかし、まあ、それは構文ではありません...そして私はドキュメントでそれのために何も見つけることができません。

任意の提案をいただければ幸いです。

4

1 に答える 1

2

これまでサポートされていませんでした。新しくリリースされたgemバージョン3.0.12は、 aasm_from_states_for_stateと呼ばれるクラスメソッドをサポートするようになりました。これは、要求したとおりに機能します。残念ながら、提案された小さなDSL(... finish.transitions.from)は非常に優れていますが、現時点では利用できません。しかし、私はそれを心に留めておきます;)

次のような新しいクラスメソッドを使用します。

MyModel.aasm_from_states_for_state(:finalstate)

これは、状態から可能なすべてを返します。特定の遷移のfrom状態のみが必要な場合:

MyModel.aasm_from_states_for_state(:finalstate, :transition => :finish)

以上(Ruby 1.9を使用)

MyModel.aasm_from_states_for_state(:finalstate, transition: :finish)

すべての呼び出しは、可能なfrom状態の配列を返します。

于 2012-10-19T10:12:28.327 に答える