【问题标题】:Ruby on rails 3: Search with multiple params?Ruby on rails 3:使用多个参数搜索?
【发布时间】:2011-12-17 14:25:24
【问题描述】:

我有一个搜索框,需要使用查询搜索“标题”或“标签”两个参数。我可以使一个参数起作用,但不能使两个参数起作用,尝试了 'OR'、'||'、',' 没有任何效果。

答案是什么?

原码:Book.where("title LIKE ?" , "%#{query}%")

我需要什么:Book.where("title LIKE ?" , "%#{query}%" OR "tags LIKE ?" , "%#{query}%")

【问题讨论】:

    标签: mysql ruby-on-rails search where


    【解决方案1】:
    Book.where("title LIKE ? OR tags like ?" , "%#{query}%", "%#{query}%")
    

    您应该首先使用包含占位符 (?) 作为 where 查询的第一个参数的“完整”SQL 查询,然后其余参数只是占位符的替换。

    更多信息请查看Active Record Querying guide

    【讨论】:

    • 很好用,我现在理解了问号。谢谢!
    【解决方案2】:

    我建议你看一下metawhere,它专门用于处理复杂的查询(我知道这个不是,但值得注意)。

    See Railscast.

    【讨论】:

    • 然后考虑 +1 答案:)
    【解决方案3】:

    来自Rails Guides

    Client.where("orders_count = ? AND locked = ?", params[:orders], false)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 2012-07-19
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多