繁体   English   中英

Meta_Search:搜索相关条目的数量

[英]Meta_Search: Search on number of associated entries

我有以下 Rails 模型:

class Entry < ActiveRecord::Base
  has_and_belongs_to_many :tags, :uniq => true
end

class Tag < ActiveRecord::Base
  has_and_belongs_to_many :entries, :uniq => true
end

很明显,一个“条目”可以有许多与之关联的“标签”。

使用插件 Meta_Search 我希望能够执行搜索(通过表单),返回具有多个关联标签的“条目”。

我尝试了几种技术,包括(命名的)范围和方法,但我无法实现这一点。

有谁知道如何执行此操作?

谢谢。

就像是

Entry.joins(
        :tags
      ).select(
        "entries.*, count(tags.id) as tags_count"
      ).order(
        "tags_count DESC"
      ).group( 
        "entries.id"
      ).where(
        "tags_count != 0"
      )

这类似于按关联记录的计数进行排序: Rails meta_search gem:按关联的 model 的计数排序其中一个答案建议使用 counter_cache,但有评论表明它不适用于 HABTM。

使用名为 scope 的命名 select 您感兴趣的记录(a la @mark's answer)并将其search_method

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM