Итак, у меня есть приложение с двумя разными моделями, комментариями и ответами, в каждой из которых вы можете согласиться или не согласиться, поэтому у меня есть полиморфная модель, называемая Emotion.Вот мой код для них:
class Comment < ActiveRecord::Base
belongs_to :user
has_many :replies
has_many :emotions, :as => :emotionable
end
class Reply < ActiveRecord::Base
belongs_to :user
belongs_to :comment
has_many :emotions, :as => :emotionable
end
class Emotion < ActiveRecord::Base
belongs_to :emotionable, :polymorphic => :true
end
Так что все это работает нормально, но мне нужно добавить кэш счетчика для комментариев и ответов, чтобы получить размер Согласен и Не согласендля каждого объекта.Во всех документах есть примеры выполнения счетного кэша с обычными полиморфными ассоциациями, а не с дополнительным условием.Для справки, по схеме Emotion выглядит так:
create_table "emotions", :force => true do |t|
t.integer "user_id"
t.string "emotion"
t.integer "emotionable_id"
t.string "emotionable_type"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
TL: DR - мне нужно иметь возможность звонить @ commet.agrees_count, @ comment.disagrees_count, @ reply.agrees_count и @ reply.disagrees_countна полиморфную ассоциацию через счетчик кэша.Таким образом, для комментариев и ответов потребуется 2 контрэша.