에서 무엇을 할 수 있는지? 나는 전에 state_machine
을 사용하지 않았지만, 하나의 typicaly가 aasm
을 사용하는 방법이 아닙니다. 전환을 보내지 않아도됩니다. 오히려 방금 이벤트를 호출하면 사용자가 만든 이벤트/전환 규칙을 기반으로 상태 전환이 자동으로 발생합니다.
다음은 작은 예입니다. 객체가 초안 상태이며 object.submit
를 호출하는 경우
aasm do
state :draft
state :review
state :accepted
state :rejected
event :submit do
transitions :from => :draft, :to => :review
transitions :from => :review, :to => :accepted
end
event :reject do
transitions :form => :review, :to => :rejected
end
end
지금 위의 예에서, 그것은
draft to review
에서 전환을 받고 검토에있는 경우 상태
object.submit
는
review to accepted
에서 전환됩니다.
이벤트를 호출 한 다음 save를 호출하는 대신 이벤트 이름에 !
을 추가하면 전환이 완료된 후 자동으로 저장됩니다.
그래서 그 대신
object.submit
object.save
의 당신은 단순히 내가 너무 내 프로젝트에서이 필요하고이 작업을 수행 할 수있는 우려를 만들었습니다
object.submit!
를 호출 할 수 https://gist.github.com/ spieker/a01966e2dd586b47b04f –