我已经阅读了关于堆栈溢出的几个问题,但似乎无法找到答案。我试图通过标签表中具有最高计数的标签在我的博客中显示标签。
感谢KandadaBoggu帮助我获得了我正在设计的博客的标签功能。这是基础知识和我的问题。
标签belongs_to:post和Post has_many:标签。标签表非常简单,包括正常的脚手架字段以及post_id和tag_name(实际上我称之为'tag_name'列,而不仅仅是'name')。
在我的/views/posts/index.html/erb文件中我正确地按组显示标签以及它们被使用的次数(出现在标签表中)。我只是想知道如何以最高的数量订购它们。这是代码,我目前将其设置为updated_at:
PostsController
def index
@tag_counts = Tag.count(:group => :tag_name, :order => 'updated_at DESC', :limit => 10)
conditions, joins = {}, nil
unless(params[:tag_name] || "").empty?
conditions = ["tags.tag_name = ? ", params[:tag_name]]
joins = :tags
end
@posts=Post.all(:joins => joins, :conditions=> conditions, :order => 'created_at DESC').paginate :page => params[:page], :per_page => 5
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
format.json { render :json => @posts }
format.atom
end
end
答案 0 :(得分:2)
更改此行:
@tag_counts = Tag.count(:group => :tag_name,
:order => 'updated_at DESC', :limit => 10)
到此:
@tag_counts = Tag.count(:group => :tag_name,
:order => 'count_all DESC', :limit => 10)