仅显示acts_as_taggable_on标记云中最常用的标记

Acts-as-taggable效果很好,但是我想知道是否有办法将标签云限制为只有最受欢迎的标签? 是的,它看起来像按照创建标签的顺序对我的云进行排序。

但是让标签云只显示最受欢迎的标签更有意义。

我的控制器有:

def styles_tag_cloud @tags = Tattoo.tag_counts_on(:styles).limit(40) end 

我的观点是:

   :tagged, :controller =>:index, :id => tag.name }, :class => css_class %>  

但所有这一切都是显示创建的前40个标签,然后根据其使用次数确定每个标签的大小

您可以使用MyModel.tag_counts_on(:tags)获取标签列表,按标签计数降序排序(最常用的标签排在第一位),如果要将其限制为特定数字,则可以将.limit(my_magic_number)附加到它。

因此,要获得Post模型中10个最受欢迎的标签列表,您可以执行以下操作:

 @tag_counts = Post.tag_counts_on(:tags).limit(10) 

如果您想查看每个标签的使用次数, @tags的对象每个都有一个您可以查看的count属性。

编辑:(从我下面的一条评论中提取)…如果你想要特定顺序的标签(最常用的标签)有一些外部定义的限制,你可以使用这个: Post.tag_counts_on(:tags).order('count desc').limit(however_many_you_want)

根据文档,您只需传递计算所需的选项(在您的情况下(控制器):

  def styles_tag_cloud @tags = Tattoo.tag_counts_on(:styles).limit(40) end 

你的观点保持不变。 问候!