ruby-on-rails – 根据上下文返回所有标签 – ActsAsTaggableOn
发布时间:2020-12-16 22:10:50 所属栏目:百科 来源:网络整理
导读:我正在使用rails gem as-taggable,并在两个上下文中标记帖子:标签和主题. 要返回所有主题标签的散列,到目前为止,我可以使用代码: Post.tag_counts_on(:topics) 但是,我已经创建了一定数量的设置主题标签,如果这些主题标签中的某些标签当前没有用作帖子上的
我正在使用rails gem as-taggable,并在两个上下文中标记帖子:标签和主题.
要返回所有主题标签的散列,到目前为止,我可以使用代码: Post.tag_counts_on(:topics) 但是,我已经创建了一定数量的设置主题标签,如果这些主题标签中的某些标签当前没有用作帖子上的标签,则上面的代码不会返回上述主题. 我想知道是否有一种方法可以根据上下文返回所有相关的标签 – 我希望有一个解决方案: topics = Tag.topics 为了实现这个解决方案,我创建了一个Tag.rb模型: class Tag < ActiveRecord::Base has_many :relationship_topics,:foreign_key => "topic_followed_id",:dependent => :destroy has_many :topic_followers,:through => :relationship_topics,:source => :topic_follower end 这里我有一些代码允许以下主题,但没有更多. 有人知道我能否根据上下文返回所有标签? 解决方法
我从来没有使用
acts-as-taggable-on,但是快速浏览代码表明,你可以做到:
# to get all the tags with context topic with counts ActsAsTaggableOn::Tagging. includes(:tag). where(:context => "topics"). group("tags.name"). select("tags.name,COUNT(*) as count") 您应该看看ActsAsTaggableOn::Tagging,ActsAsTaggableOn::Tag和db / migrations文件夹中的迁移文件,以了解如何处理. 如果你不想计数,只有标签名称: tags = ActsAsTaggableOn::Tag.includes(:taggings). where("taggings.context = 'topics'"). select("DISTINCT tags.*") # usage tags.each {|tag| puts tag.name} 我希望能回答你的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |