Я пытаюсь заполучить функцию кэширования счетчика рельсов, но не могу понять ее полностью.
Допустим, у нас есть 3 модели
A B C
A принадлежит B или C в зависимости от поля key_type и key_id. key_type сообщает, принадлежит ли A B или C, поэтому, если key_type = "B", запись принадлежит B, в противном случае она принадлежит C.
В моей модели a.rb я определил следующие ассоциации:
belongs_to :b, :counter_cache => true, :foreign_key => "key_id"
belongs_to :c, :counter_cache => true, :foreign_key => "key_id"
и
в файлах моделей b и c
has_many :as , :conditions => {:key_type => "B"}
has_many :as , :conditions => {:key_type => "C"}
Модели B и C имеют столбец as_count
Проблема в том, что каждый раз, когда создается объект, количество увеличивается в обеих моделях b и C.
Любая помощь приветствуется. Первоначально я думал, что это может работать:
belongs_to :b, :counter_cache => true, :foreign_key => "key_id", :conditions => {:key_type => "B"}
belongs_to :c, :counter_cache => true, :foreign_key => "key_id", :conditions => {:key_type => "C"}
Но это не помогает.
Спасибо