2011-03-05 13 views
2

私はRailsの3でActiveRecord::Transitionsを使用して、私のステート・マシンのように定義されていています:トランジションクラス(ステート・マシン)可能な遷移のリストを取得

私は可能なトランジションの一覧を表示するにはどうすればよい
state_machine do 
state :initial # first one is initial state 
state :active 
state :disabled 

event :activate do 
    transitions :to => :active, :from => [:initial, :disabled] 
end 
event :disable do 
    transitions :to => :disabled, :from => [:initial, :active] 
end 
end 

現在のオブジェクトと状態?例えば 私は状態で「アクティブ」@productを持っている場合、それは私に

  • を教えてください「無効」を「無効」のみ利用可能な状態、または
  • ある

答えて

3

利用できる唯一のイベントです私は、可能な-次の状態を列挙するための任意の明白な方法を見ることはできませんが、このような利用可能なイベント問い合わせることができます:あなたは複数のSTAを使用している場合(

YourClass.state_machines[:default].events_for(:active) 
=> [:disable] 

YourClass.state_machinesハッシュに追加メンバーが存在しますTEマシン)基本的には

関連する問題