[英]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.