2011-02-06 6 views
23

Sto usando AASM. È possibile la transizione da qualsiasi stato? Per esempio:AASM: Transizioni da qualsiasi stato?

aasm_event :publish do 
    transitions :to => :publish, :from => ANY_STATE 
end 

So che è possibile passare una serie di Stati a :from, ma questo non è quello che sto cercando. Ho provato a omettere lo :from completamente, ma non ha funzionato.

risposta

53

SAMA ora supporta transizioni senza from specificato, che consentirà la transizione da uno stato.

aasm_event :publish do 
    transitions to: :publish # from ANY 
end 

(vantarsi: ho aggiunto questa funzione, perché ne avevo bisogno)

+4

Grazie per aver aggiunto la funzione al codebase. Tutte le versioni di AASM> = 3.0.10 includono questo ora. – alto

5

È possibile ottenere gli stati tramite il metodo di classe aasm_states, a condizione che siano già stati definiti in precedenza nel codice.

aasm_event :publish do 
    transitions :to => :publish, :from => aasm_states.map(&:name) 
end 
+0

Perfetto, grazie. – gjb

+4

Thx per la risposta, ma si sente hack-ish. AASM dovrebbe supportare: tutti o: qualsiasi. – pschang