【问题标题】:Rails Acts as taggable on: Find related keywords on multiple taggable typesRails 充当可标记对象:在多个可标记类型上查找相关关键字
【发布时间】:2011-04-06 18:40:11
【问题描述】:

我正在网站上创建一个“相关内容”区域,并使用acts-as-taggable-on gem 来执行此操作。然后在一篇文章中,它通过关键字匹配来提取相关内容。以下代码适用于 find_related_keywords (注意:将所有逻辑放在视图中以简化并使其暂时起作用,稍后将适当重构)

<% for related in @article.find_related_keywords.limit(5) %>
    # Markup for related item in here       
<% end %>

但是,这只会返回相同模型类型中的相关内容,在本例中为 Article。我还有其他模型/表格,例如评论、采访等,它们也定义了 :keywords 可标记字段,并且希望包含在 find_related_keywords 结果中的那些。有没有办法做到这一点?

【问题讨论】:

    标签: ruby-on-rails tags acts-as-taggable-on


    【解决方案1】:

    你试过了吗:

    Review.tagged_with(@article.category_list, :any => true).limit(5)
    
    Interview.tagged_with(@article.category_list, :any => true).limit(5)
    

    【讨论】:

    • 抱歉回复晚了,直到现在才回到我项目的这一部分。无论如何,是的,我采用上述方法并通过 Ruby 将它们添加在一起(并限制了所有 20 个结果),它现在完成了我想做的事情。唯一令人遗憾的是它是四个查询而不是一个,但这就是表的本质,而且我可以使用缓存来抵消这一点。谢谢!
    【解决方案2】:

    在研究了 Acts as Taggable On 的工作原理(再加上缺乏响应)之后,我得出的结论是,这样做是不可能的,而且它确实只适用于单一对象类型。

    但是,我已经考虑过使用搜索引擎对我有利的另一种可能性。我的项目目前有 Sunspot/Solr,我现在正在考虑使用关键字字段自动搜索关键字,理论上,这应该可以很好地从任何已索引的对象/表中返回最后五个结果或其他内容通过索尔。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多