Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 根据上下文返回所有标签 – ActsAsTaggableOn大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Rails gem as-taggable,并在两个上下文中标记帖子:标签和主题.

要返回所有主题标签的散列,到目前为止,我可以使用代码:@H_874_3@

Post.tag_counts_on(:topics)

但是,我已经创建了一定数量的设置主题标签,如果这些主题标签中的某些标签当前没有用作帖子上的标签,则上面的代码不会返回上述主题.@H_874_3@

我想知道是否有一种方法可以根据上下文返回所有相关的标签 – 我希望有一个解决方案:@H_874_3@

topics = Tag.topics

为了实现这个解决方案,我创建了一个Tag.rb模型:@H_874_3@

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

这里我有一些代码允许以下主题,但没有更多.@H_874_3@

有人知道我能否根据上下文返回所有标签?@H_874_3@

解决方法

我从来没有使用 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文件夹中的迁移文件,以了解如何处理.@H_874_3@

如果你不想计数,只有标签名称:@H_874_3@

tags = ActsAsTaggabLeon::Tag.includes(:taggings).
           where("taggings.context = 'topics'").
           SELEct("DISTinCT tags.*")

# usage
tags.each {|tag| puts tag.namE}

我希望能回答你的问题.@H_874_3@

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 根据上下文返回所有标签 – ActsAsTaggableOn全部内容,希望文章能够帮你解决ruby-on-rails – 根据上下文返回所有标签 – ActsAsTaggableOn所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。