ruby-on-rails - 搜索模型 tagged_with 或 title like (with acts_as_taggable_on)

标签 ruby-on-rails scope acts-as-taggable-on

我正在使用范围搜索模型。这是通过带有搜索参数 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。

最佳答案

考虑过 Arel 吗?你可以这样做

t = TableName.arel_table
scope = scope.where(t[:title].eq("BLAH BLAH").or(t[:tag].eq("blah blah")))

否则你可以做

scope = scope.where("title = ? OR tag = ", title_value, tag_value)

关于ruby-on-rails - 搜索模型 tagged_with 或 title like (with acts_as_taggable_on),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061995/

相关文章:

css - rails 4 bootstrap group buttons with acts as taggable on edit, not pushed down

ruby-on-rails - 自动加载嵌套目录的正确方法。为什么尾随正斜杠?

ruby-on-rails - 如何在生产服务器中运行 sidekiq?

php - 函数中使用的 PDO 范围

ruby-on-rails - SELECT DISTINCT 的 PG 错误,尝试在 Heroku 上查看时,ORDER BY 表达式必须出现在选择列表中

ruby-on-rails - 使用 acts-as-taggable-on 查找相关标签

ruby-on-rails - rails : Updating an object from within a callback of an associated object

javascript - 在 jQuery 中访问 Rails.env 变量?

Python 两个函数的变量作用域

delphi - 如何解决命名和范围冲突?