7

ウィザードの作成に使用して、最新の AASM gem をアプリケーションに統合することに成功しました。私の場合、モデルの注文があります

class Order < ActiveRecord::Base

  belongs_to :user
  has_one :billing_plan, :dependent => :destroy
  named_scope :with_user, ..... <snip>

  include AASM

  aasm_column :aasm_state
  aasm_initial_state :unauthenticated_user

  aasm_state :unauthenticated_user, :after_exit => [:set_state_completed]
  aasm_state : <snip>

  <and following the event definitions>

end

ここで、管理者が AASM 状態を介して独自のグラフを作成できるようにしたいと思います。したがって、OrderFlow と Transition という 2 つの追加モデルを作成しました。このモデルでは、order_flow には多くのトランジションがあり、order belongs_to order_flow があります。

今のところ問題ありません。ここで、管理者が既存の遷移/イベントを order_flow グラフに動的に追加できるようにしたいと考えています。

問題は、注文モデルからすべてのイベント/遷移のリストを取得する可能性が見つからないことです。aasm_states_for_select が正しい候補のようですが、注文モデルで呼び出すことができません。

誰でも助けることができますか?

事前にThx。J.

4

5 に答える 5

7

version3.0.18では、使用する必要がありますClassName.aasm.states

于 2013-05-21T23:44:57.173 に答える
3

OrderFlow が Order と Transitions でどのように機能するかはわかりませんが、シナリオをよりよく説明するためにそれを含めただけだと思います。

ClassName.aasm_states_for_select は、モデルで宣言されている状態のリストを提供します。

于 2010-10-26T15:55:25.403 に答える
2

イベント3.1.1Model.aasm.events.keys、イベント名シンボルの配列を取得していました。最近のバージョン.map(&:name)では、それはできません。

于 2014-04-29T19:27:49.793 に答える
1

また、何を求めているのか 100% 確実ではありませんが、モデルに対して宣言されたすべての状態とイベントが必要な場合は、それぞれ Order.aasm_states と Order.aasm_events を呼び出して取得できます。

于 2010-12-05T03:38:38.393 に答える
0

以下のIRBのこの例のように、より洗練されたRuby構文を使用できます。シンボルの配列ですべての許容可能な状態を取得します。

1.9.3-p0 :011 > ApprovalRequest.aasm_states.map(&:name)

=> [:created、:submitted、:rejected、:authorized]

于 2012-11-05T11:22:59.473 に答える