2012-10-10 2 views
1

저는 AASM을 처음 사용하고 newstate 상태로 전환 할 수있는 MyModel 모델의 모든 상태 목록을 얻으려고합니다.rails aasm : 특정 이벤트를 허용하는 모든 상태 가져 오기

따라서, 예를 들어 :

aasm_event :finish do 
    transitions :to => :finalstate, :from => [:start, :working] 
    end 

는 기본적으로, 반환 할 [: 시작 : 작업] 모델을 통해 배열,

MyModel.aasm_events.finish.transitions.from 

그러나의 라인을 따라 그렇게 뭔가, 글쎄, 그 구문이 아니에요 ... 그리고 나는 문서에 대해 아무것도 찾을 수 없습니다.

의견을 보내 주시면 감사하겠습니다.

답변

2

지금까지는 지원되지 않았습니다. 갓 출시 된 보석 버전 3.0.12은 질문하신대로 수행하는 aasm_from_states_for_state이라는 클래스 메소드를 지원합니다. 불행히도 제안 된 작은 DSL (... finish.transitions.from)은 매우 훌륭하지만 현재는 사용할 수 없습니다. 상태에서 모든 가능한을 반환

MyModel.aasm_from_states_for_state(:finalstate) 

을 :

이 같은 새 클래스의 방법을 사용)하지만 마음에 보관됩니다. 당신은 단지 특정 전환에 대한 상태에서 원하는 경우

MyModel.aasm_from_states_for_state(:finalstate, :transition => :finish) 

또는 (루비 1.9를 사용하여) 현대

MyModel.aasm_from_states_for_state(:finalstate, transition: :finish) 

모든 통화는 상태에서 수의 배열을 반환합니다.

+1

다만 힌트 : 소스 코드를 나타냅니다 방법'aasm_from_states_for_state'이 버전 4.x에서 제거됩니다 -> ".aasm_from_states_for_state은 더 이상 사용되지 않으며 버전 4.0.0에서 제거 될 것이다 .aasm.from_states_for_state을 사용하시기 바랍니다 대신! " – awenkhh