2014-10-07 2 views
0

저는 루비 AASM 젬을 사용하고 있습니다.AASM을 사용하여 상태 시스템에서 상태를 건너 뛰는 방법

누구든지 상태를 건너 뛰는 올바른 방법을 알고 있습니까?

class Job 
    # ... 

    event :stage1_completed do 
    if stage2_completed? 
     transitions from: :stage1, :to => :stage3 
    else 
     transitions from: :stage1, :to => :stage2 
    end 
    end 

    # ... 
end 

AASM에서 이것을 설정하는 가장 좋은 방법은 무엇입니까?

resque 작업 집합에서이 코드를 사용하므로 stage1은 resque 작업이며 상태를 업데이트하고 다음 resque 작업을 시작합니다. 2 단계, 3 단계와 동일

답변

1

guards을 사용할 수 있습니다.

event :stage1_completed do 
    transitions from: :stage1, :to => :stage3, :guard => :stage2_completed? 
end 
+0

어떻게하면 다음과 같은 정규 전환을 처리 할 수 ​​있습니까? – Daniel

+0

보호 된 상태에서 전환 추가가 작동하지 않습니까? – rohit89

+0

아, 나는 상태가 바뀌면 그들이 순차적으로 일하고 끝날지 몰랐다. 시원한! – Daniel