У меня много проблем со страницей, где мне нужно отобразить несколько графиков о данных в классе «Пост».Вот соответствующие модели.
class Primary
has_many :secondary
has_many :posts, :through => :secondary
has_many :authors, :through => :secondary
end
class Secondary
belongs_to :primary
has_many :posts
has_many :authors
end
class Post
belongs_to :secondary
belongs_to :author
end
class Author
has_many :posts
belongs_to :secondary
end
Класс Author имеет один атрибут, который можно отфильтровать: «категория».
У меня есть запрос, который фильтрует то, что пользователь хочет в сообщенииданных и отображает их на странице:
@primary.posts.count(:include => :author, :conditions => @conditions)
Это всегда работало хорошо, но теперь, когда количество участвующих авторов значительно возросло, когда пользователь пытается выполнить фильтрацию по категории, я добавляю условие "author.category IN (1, 2) ", а затем выполнение запроса занимает более 50 секунд, в отличие от 2, 3, которые он обычно выполняет.
Что можно сделать, чтобы улучшить это?Я занимался этим весь день, и единственное, что я придумал, - это сохранение значения категории в посте, но это будет означать добавление большого количества проверок и заданий для обновления данных по всем постам, когда авторотредактировано: (
Заранее спасибо.