我在一个页面上遇到很多麻烦,我需要在“Post”类中显示一些关于数据的图表。以下是涉及的模型。
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类有一个可以过滤的属性:“category”。
我有一个查询,用于过滤用户在帖子数据中想要的内容并将其显示在页面上:
@primary.posts.count(:include => :author, :conditions => @conditions)
这一直运行良好,但现在涉及的作者数量已经增加了很多,当用户尝试按类别过滤时,我添加条件“authors.category IN(1,2)”,然后查询开始花费超过50秒完成,而不是通常的2,3。
我可以做些什么来改善这个?我整天都在这里,我唯一想到的就是在帖子上存储类别值,但这意味着在作者添加大量的检查和工作来更新所有帖子的数据编辑:(
提前谢谢。
答案 0 :(得分:0)
您可以尝试batch finding,也可以看到Rails 2 guides "4.5 Batch Processing"。
如果你有时间,你也可以看到其中一些screencast on scaling rails