2016-06-16 9 views
1
module ServiceBackupable::AWS 
    store_accessor :data, :last_backup_at 
    def backup 
    ... 
    end 
end 

$ ServiceBackupable을 포함하는 모듈 :: AWS이 문제를 해결하기 위해 store_accessor에게

NoMethodError: undefined method `store_accessor' for ServiceBackupable::AWS:Module 

만들기

module ServiceBackupable::AWS 
    include ActiveRecord::Store 
    store_accessor :data, :last_backup_at 
    def backup 
    ... 
    end 
end 

$ ServiceBackupable : AWS

NoMethodError: undefined method `class_attribute' for ServiceBackupable::AWS:Module 
    from /home/project/.gem/ruby/2.1.0/gems/activerecord-4.1.1/lib/active_record/store.rb:69:in `block in <module:Store>' 
액티브 :: 스토어를 포함했다

어떻게 모듈을 만들 수 있습니까? 에 가게 수납함이 있습니까?

답변

0

코드에 따르면 ServiceBackupable::AWS 모듈은 mixin (즉, 다른 클래스/모듈에 포함됨)으로 사용됩니다. 그렇다면 모듈을 ActiveRecord::Concern으로 만들 수 있습니다. 방법 store_accessor 평가하지이 모듈 자체에이 모듈을 (직접 또는 간접적으로) 포함 클래스의 정의까지 지연된다

module ServiceBackupable::AWS 
    extend ActiveSuport::Concern 
    include ActiveRecord::Store 

    included do 
    store_accessor :data, :last_backup_at 
    end 
end 

참고.

관련 문제