2017-10-28 23 views
1

ActiveRecord 모델이 있습니다. 초기화시 속성에 따라 초기 상태를 설정하고 싶습니다. 여기에 내 조건이있다 :aasm gem을 사용하여 동적으로 초기 상태 설정

self.expected_delivery_date.blank? ? :in_preparation : :waiting 

그럴 수있는 방법이 있습니까? 나쁜 생각입니까?

답변

0

당신은 aasm 후크 방법을 정의하고이 상태를 설정할 수 있습니다 : 나에게 합리적인 것 같다

class User < ActiveRecord::Base 
    include AASM 
    aasm do 
    state :submitted, initial: true 
    state :started 
    end 
    def aasm_ensure_initial_state 
    self.aasm_state = :started 
    end 
end 

을; 가장 일반적인 초기 상태 인 initial: true 옵션을 제공 한 다음 aasm_ensure_initial_state의 로직을 사용하여 덜 일반적인 초기 상태를 설정할 수 있습니다.