我想在我的索引页面上按受欢迎程度而不是按创建日期排序文章标签,即从最高到最低文章数量最多的标签。我的模型如下?
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
我建议使用计数器缓存列来存储taggings_count
(在新标记时会自动更新)。
然后你的默认范围可以是这样的:
default_scope :order => 'taggings_count DESC'
有关更多信息,请在Rails指南中搜索"counter_cache"以查找AR关联