2011-02-06 76 views
23

我正在使用AASM。是否可以从任何状态转换?例如:AASM:从任何状态转换?

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

我知道这是可能的状态的数组传递给:from,但是这不是我后。我试过完全忽略了:from,但那没有奏效。

回答

53

AASM现在支持过渡无需指定任何from,这将允许从任何状态转变。

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

(吹牛的权利:我添加了这个功能,因为我需要它)

5

您可以通过aasm_states类方法获得状态,只要它们已经在代码的前面定义。

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

完美,谢谢。 – gjb 2011-02-07 21:48:30

+4

Thx为答案,但感觉hack-ish。 AASM应该支持:全部或:任何。 – pschang 2011-12-01 17:20:26