2011-02-06 5 views
23

मैं 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 

(प्रशंसा करने के अधिकार: क्योंकि मैं यह आवश्यक है कि मैं इस सुविधा जोड़ी)

+4

सुविधा कोडेबेस में जोड़ने के लिए धन्यवाद। सभी एएएसएम रिलीज> = 3.0.10 अब इसे शामिल करें। – alto

5

आप aasm_states कक्षा विधि के माध्यम से राज्यों को प्राप्त कर सकते हैं, बशर्ते वे कोड में पहले ही परिभाषित हो चुके हैं।

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

बिल्कुल सही, धन्यवाद। उत्तर के लिए – gjb

+4

Thx लेकिन हैक-आश लगता है। एएएसएम का समर्थन करना चाहिए: सभी या: कोई भी। – pschang