2014-09-18 1 views
1

그래서 나는 4 개 가지 모델에, 나는이 코드의 중복을 피하기 위해 싶습니다 AASMAASM을 사용하여 코드 중복을 방지하려면 어떻게합니까?

aasm column: 'status' do 
    state :active, :initial => true 
    state :inactive 

    event :deactivate do 
    transitions :from => :active, :to => :inactive 
    end 

    event :activate do 
    transitions :from => :inactive, :to => :active 
    end 
end 

를 사용하여 관리 할 그들 중 많은 기능을 액티브 한을 가지고 비활성화 내 프로젝트를 여러 모델에이 그리고 나는 아마 그들에게 더 이상 국가를 추가하지 않을 것이다. 사전에

감사

답변

3

이 부분 모듈을 만들고 models/concerns/ 또는 lib/ 폴더에 넣어 (또는 다른 곳에서, 당신이 그것을 업로드했는지 확인) 수 :

module ActivateDeactivateStatuses 
    extend ActiveSupport::Concern 

    included do 
     aasm column: 'status' do 
     state :active, :initial => true 
     state :inactive 

     event :deactivate do 
      transitions :from => :active, :to => :inactive 
     end 

     event :activate do 
      transitions :from => :inactive, :to => :active 
     end 
     end 
    end 
    end 

와의를 내 모델 :

include ActivateDeactivateStatuses