2010-04-16 26 views
0

我已经阅读了关于堆栈溢出问题的几个问题,但似乎无法找到答案。我正尝试在标签表中以最高计数显示我的博客中的标签。由最高组数问题排序视图 - Ruby on Rails

感谢KandadaBoggu帮助我获取我正在设计的博客的标签功能。这是基础知识和我的问题。

标签belongs_to:发布和发布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 

回答

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) 
+0

这似乎放他们按字母顺序排列。不按小组计数。 – bgadoci 2010-04-16 05:12:52

+0

更新了答案看看。 – 2010-04-16 05:48:15

+0

美丽,那很好。 – bgadoci 2010-04-16 05:54:22