我正试图将OR WHERE查询到一个在查询中充当可标记的函数,就像这样…
Business.tagged_with(params[:query], :any => true)
但我也想在同一时间表演这样的表演。。。
Business.tagged_with(params[:query], :any => true).or_where('name LIKE ?', "%#{params[:query]}%")
这显然不起作用,因为没有or_where方法,但有人知道如何正确执行吗?
简而言之,我正试图找到一个与任何标签或企业名称相匹配的标签。谢谢
您可以使用|运算符将两个查询"或"在一起,如下所示:
Business.tagged_with(params[:query], :any => true) | Business.where('name LIKE ?', "%#{params[:query]}%")
请注意,这将急切地加载结果,因此在此之后不能再应用任何条件,如排序。它将返回一个数组,其中包含所有匹配的结果,不包括重复的结果。