프로젝트에 state_machine gem을 사용하려고하지만 Rails 3.1 응용 프로그램에서 이벤트를 호출하는 방법이 고착됩니다.Rails 응용 프로그램에서 state_machine gem을 사용하여 이벤트를 트리거하는 방법
vehicle = Vehicle.create # => #<Vehicle id=1 state="parked">
vehicle.ignite # => true
vehicle.state
하지만 어떻게 내가의 상태를 변경하는 것이 나에게 다음과 같은 옵션을 제공하는 것이,
class Vehicle < ActiveRecord::Base
state_machine :initial => :parked do
event :ignite do
transition :parked => :idling
end
end
end
그리고 이해 :
나는 아래와 같은 state_machine를 설정하는 방법을 이해 Rails 애플리케이션의 차량? vehicles.ignite가 컨트롤러에서 호출됩니까? 또는 before_save 메서드에 있습니까? 엔진 점화를위한 특별한 경로로 AJAX 호출이있는 페이지에 버튼이 있습니까?
앱이 어떻게 점화 방식을 호출하는 것을 알고 있습니까? 나는이 게시물에 점화한다 있는지 확인하는 플래그의 몇 가지 유형을 통과해야합니까 (즉, attr_accessor : mark_as_ignited 또는이 점화 메서드를 호출 알고 다른 변수에 따라
, 당신을 감사
답장을 보내 주셔서 감사합니다. 그게 내가 생각하고 있었던 것. 각 이벤트마다 별도의 경로를 하나씩 사용하는 것이 좋을지, 아니면 하나의 라우트가 "update_status"라고 한 다음 호출 할 이벤트를 트리거하는 매개 변수를 전달 하시겠습니까? –
나는 SRP (single responsibility principle)를 따르고 모든 것을 하나로 묶어 놓는 경향이있다. – Robert
도움을 주셔서 감사합니다. –