按最高组计数问题排序视图 - Ruby on Rails

时间:2010-04-16 04:29:11

标签: ruby-on-rails

我已经阅读了关于堆栈溢出的几个问题,但似乎无法找到答案。我试图通过标签表中具有最高计数的标签在我的博客中显示标签。

感谢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

1 个答案:

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