在 tagged_with 或_where 上充当可标记的角色?

And*_*ank 5 acts-as-taggable-on ruby-on-rails-3

我正在尝试将 OR WHERE 查询为可标记的查询,如下所示...

Business.tagged_with(params[:query], :any => true)
Run Code Online (Sandbox Code Playgroud)

但我也想同时执行 or_where 这样的......

Business.tagged_with(params[:query], :any => true).or_where('name LIKE ?', "%#{params[:query]}%")
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,因为没有 or_where 方法,但有人知道如何正确执行此操作吗?

简而言之,我试图找到与任何标签或公司名称匹配的内容。谢谢。

Jam*_*ney 3

您可以使用 | 将两个查询组合在一起 像这样的运算符:

Business.tagged_with(params[:query], :any => true) | Business.where('name LIKE ?', "%#{params[:query]}%")
Run Code Online (Sandbox Code Playgroud)

请注意,这将立即加载结果,因此在此之后您无法再应用任何条件,例如排序。它将返回一个数组,其中包含所有匹配结果(不包括重复项)。