Rails 3,链接模型的可排序表格列?

时间:2011-01-17 16:15:57

标签: ruby-on-rails ruby-on-rails-3

我最近关注http://railscasts.com/episodes/228-sortable-table-columns向我的应用添加可排序表格列。它工作得很好,但我的表中的一些列是post.comments.count(显然帖子有很多注释)。我希望能够按照帖子在表格中的评论数量进行排序,但我无法弄清楚如何使用railscast中的解决方案来实现这一点。

2 个答案:

答案 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

不确定这是否适用于您的每一个案例。