2011-10-28 39 views
2

我有一个搜索框,需要使用查询通过2个参数,“标题”或“标签”进行搜索。我可以得到一个参数,但不是两个,尝试'OR','||',','没有任何作用。Ruby on rails 3:使用多个参数搜索?

答案是什么?

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

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

回答

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

你应该有“完全” SQL查询首先它包含占位符(?)作为where查询的第一个参数,然后将剩余的参数是简单占位符的替代品。请参阅Active Record Querying guide

+0

为你的伟大的书我正在阅读;) – apneadiving

+0

伟大的工作,我现在我明白了questionmarks。谢谢! – jakobk

2

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

See Railscast

+0

谢谢,以后可能会有用:) – jakobk

+0

考虑+1的答案,然后:) – apneadiving

1

Rails Guides

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