0

는 :Rails의 다형성 has_one 연관에서 카운터 캐시를 비활성화하는 방법은 무엇입니까? 나는 아래 <strong>has_one</strong> 연관들에 대해 카운터 캐시를 사용하지 않고 단지 has_many에 그것을 유지하기 위해 필요 해요

class User < ActiveRecord::Base 
    has_one :email, as: :emailable 
end 

class Company < ActiveRecord::Base 
    has_many :emails, as: :emailable 
end 

class Email < ActiveRecord::Base 
    belongs_to :emailable, polymorphic: true, counter_cache: emails_count 
end 

나는 사용자 모델에 emails_count 열이 없습니다. 어떤 아이디어?

도움 주셔서 감사합니다. 당신이 counter_cache 옵션을 지정하지 않으면 캐시가 어떤 이유로 당신을 위해 관계없이 발생하는 경우

답변

0

, 당신은 내가 원하는,이 경우에는 counter_cache: false

+0

하이 인 Samer을 강제로 시도해 볼 수도, 어떤 카운터 캐싱이 안 회사 클래스 만 캐싱하고 사용자 클래스는 캐싱하지 마십시오. – leomperes

+0

나는이 일을 할 수있는 깨끗한 방법이 없다고 생각한다. 당신은 항상 그곳으로가는 길을 모색 할 수있다. User 클래스의 increment/decrement_counter 메서드를 오버라이드하면 여기에 필요한 것을 버릴지도 모른다. 내가 당신이라면 counter_cache를 전혀 사용하지 않고 전자 메일을 추가/삭제할 때마다 Company의 카운터를 수동으로 업데이트합니다. –