我想按照受欢迎程度而不是创建日期在我的索引页面上订购文章标签,即从最高到最低的文章中包含最多文章的标签。我的模型如下?
class Tag < ActiveRecord::Base
attr_accessible :name
validates :name, :uniqueness => true
# order by creation
default_scope :order => 'created_at DESC'
has_many :taggings, :dependent => :destroy
has_many :articles, :through => :taggings
end
答案 0 :(得分:5)
我建议使用counter cache column来存储taggings_count
(在新标记时会自动更新)。
然后你的默认范围看起来像这样:
default_scope :order => 'taggings_count DESC'
有关详细信息,请在AR associations
的Rails指南中搜索“counter_cache”