assm_event를 처리하는 동안 예외가 발생하면 해당 코드 블록이 해당 오류를 포착하도록 AASM에 알리는 좋은 방법이 있습니까?이벤트 실패시 AASM이 특정 메소드를 실행하도록 할 수 있습니까?
는 예를 들어, 현재 나는 내가 무엇을 선호하는
assm_state :state_1
assm_state :state_2, :before_enter => :validate_something
assm_state :failed
assm_event :something_risky, :on_exception => :log_failure do
transition :from => :state_1, :to => :state_2
end
assm_event :fail do
transition :from => [:state_1, :state_2], :to => :failed
end
def validate_something
something_that_might_raise_exception
end
def log_failure
self.record_error
self.fail
end
같은입니다
assm_state :state_1
assm_state :state_2, :before_enter => :validate_something
assm_state :failed
assm_event :something_risky do
transition :from => :state_1, :to => :state_2
end
assm_event :fail do
transition :from => [:state_1, :state_2], :to => :failed
end
def validate_something
begin
something_that_might_raise_error
rescue
self.record_error
self.fail
end
end
과 같은 일을하고 something_that_might_raise_exception
는 예외를 발생 않는 경우 log_failure
를 호출 할 수 있습니다. 이상적으로 나는 당신이 사용하는 경우 미래