仅显示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
你的观点保持不变。 问候!