我正在使用范围搜索模型。这是由带有搜索参数 q 的搜索表单访问的。目前我有下面的代码,可以很好地搜索与模型关联的标签。但我也想搜索标题字段。如果我添加到此范围,那么我将获得所有与搜索词匹配的标签和标题的结果。
但是,我需要返回与 company_id 和 category_id 匹配的结果,以及匹配的标题或标签。我不知道如何向这个范围添加 OR 子句。
def self.get_all_products(company, category = nil, subcategory = nil, q = nil)
scope = scoped{}
scope = scope.where "company_id = ?", company
scope = scope.where "category_id = ?", category unless category.blank?
scope = scope.tagged_with(q) unless q.blank?
scope
end
我正在使用 Rails 3。