Ruby on rails 3:搜索多个参数?

时间:2011-10-28 20:53:25

标签: mysql ruby-on-rails search where

我有一个搜索框,需要使用查询搜索2个参数“title”或“tags”。我可以得到一个参数,但不是两个,试过'OR','||',','没什么用。

答案是什么?

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

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

3 个答案:

答案 0 :(得分:8)

Book.where("title LIKE ? OR tags like ?" , "%#{query}%", "%#{query}%")

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

有关详细信息,请参阅Active Record Querying guide

答案 1 :(得分:2)

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

See Railscast

答案 2 :(得分:1)

来自Rails Guides

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