2011-02-06 23 views
23

Używam AASM. Czy można przejść z dowolnego stanu? Na przykład:AASM: Przejścia z dowolnego stanu?

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

Wiem, że jest możliwe, aby przekazać tablicę stanów do :from, ale to nie jest to, co ja jestem po. Próbowałem całkowicie pominąć :from, ale to nie zadziałało.

Odpowiedz

53

aasm obsługuje teraz przejść bez from określony, co umożliwi przejście z dowolnego stanu.

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

(chwalenie prawa: Dodałem tę funkcję, bo potrzebował)

+4

Dziękujemy za dodanie funkcji do bazy kodów. Wszystkie wydania AASM> = 3.0.10 obejmują to teraz. – alto

5

Możesz uzyskać stany za pomocą metody klasy aasm_states, o ile zostały wcześniej zdefiniowane w kodzie.

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

doskonały, dziękuję. – gjb

+4

Thx za odpowiedź, ale czuje się hack-owski. AASM powinien wspierać: wszystkie lub: dowolne. – pschang

Powiązane problemy