我最近关注http://railscasts.com/episodes/228-sortable-table-columns向我的应用添加可排序表格列。它工作得很好,但我的表中的一些列是post.comments.count(显然帖子有很多注释)。我希望能够按照帖子在表格中的评论数量进行排序,但我无法弄清楚如何使用railscast中的解决方案来实现这一点。
答案 0 :(得分:4)
最简单的方法是使用counter_cache。
使用迁移,在表comments_count:integer
上创建posts
数据库字段。
然后更新您的模型:
class Comment < ActiveRecord::Base
belongs_to :post, :counter_cache => true
end
然后对该列进行排序:
Post.order(:comments_count)
答案 1 :(得分:0)
在您提到的情况下,一种方法是计数器缓存列
post.comments_count
# instead of
post.comments.count
不确定这是否适用于您的每一个案例。