2013-11-21 1 views
0

transition_for 사용하지만 문서는 내가 사용 하죠 객체하는 표시되지 않습니다state_machine 보석은 어떻게 state_machine 보석의 transition_for을 사용하고자하는

http://rdoc.info/github/pluginaweek/state_machine/master/StateMachine/Event:transition_for

당신이 나에게 보여주기 위해 예를 가지고 있습니까?

+0

transition_for를 사용하여 무엇을 사용 하시겠습니까? 그걸 벗어나기를 바라는거야? – AndyV

+0

다음 호출 가능한 상태를 알아야합니다. – rtacconi

답변

1
class Stately 
    state_machine :state, initial: :pending do 
    state :approved 
    state :declined 

    event :approve do 
     transition pending: :approved 
    end 

    event :decline do 
     transition all => :declined 
    end 
    end 
end 

stately = Stately.new 
stately.state 
#=> :pending 

stately.state_events 
#=> [ :approve, :decline ] 

stately.approve 
stately.state_events 
#=> [ :decline ] 

싶은 것은 ... 실수로 예외 (ALL 이벤트를 참조하는 것보다 훨씬 좁은 범위)가 발생합니다 이벤트 다음은이 작업을 수행 할 수 있습니다 트리거에서 자신을 방지하는 경우

stately = Stately.new 
stately.state 
#=> :pending 

stately.can_approve? 
#=> true 
stately.can_decline? 
#=> true 

stately.approve 
stately.can_approve? 
#=> false 
stately.can_decline? 
#=> true 
관련 문제