0
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 옵션을 지정하지 않으면 캐시가 어떤 이유로 당신을 위해 관계없이 발생하는 경우
하이 인 Samer을 강제로 시도해 볼 수도, 어떤 카운터 캐싱이 안 회사 클래스 만 캐싱하고 사용자 클래스는 캐싱하지 마십시오. – leomperes
나는이 일을 할 수있는 깨끗한 방법이 없다고 생각한다. 당신은 항상 그곳으로가는 길을 모색 할 수있다. User 클래스의 increment/decrement_counter 메서드를 오버라이드하면 여기에 필요한 것을 버릴지도 모른다. 내가 당신이라면 counter_cache를 전혀 사용하지 않고 전자 메일을 추가/삭제할 때마다 Company의 카운터를 수동으로 업데이트합니다. –