3
어떻게 aasm 이벤트를 부울 이외의 값으로 반환합니까? 아셈을 사용하고 있습니다. 2.2.0aasm 이벤트에서 값을 반환하는 방법은 무엇입니까?
예 : 지금은 현재 플레이어를 시작하기에 재생되는 노래를 반환 할 경우
aasm_state :started, :after_enter => :play_song
aasm_state :stopped
aasm_event :start do
:transitions :from => :stopped, :to => :started
end
def play_song
# select and play a song randomly and return the song object
end
을 시작했을 때 무작위로 노래를 재생하는 MusicPlayer 모델, 나는 그것이 'play_song'방법을 통해 어떻게해야합니까이있다?
시나리오 위의 사용 사례입니다. – Vignesh
흠, 알 겠어. 당신은 연주하고 있는지, 연주하고 있는지를 알고 싶을뿐입니다. 이것은 상태 기계로 쉽게 해결할 수있는 문제는 아닙니다. 그냥 before_enter와 after_enter 콜백과 같은 몇 가지 콜백이 있다고 상상해보십시오. 그러면 어떤 결과가 나옵니까? 아마도 상태 시스템에서 해당 논리를 유지하고 상태 전이 방법을 감쌀 것입니다. 내 대답을 내 뜻을 업데이트하도록하겠습니다. – alto
맞습니다. 그리고 현재의 노래가 음악 플레이어의 상태를 제공하기 때문에 실제로 더 의미가 있습니다. – Vignesh