【发布时间】:2011-10-25 12:04:35
【问题描述】:
我正在尝试像这样在 Rails 3 中进行搜索。我有一个这样的数据库对象,其属性如下:
@food.fruit = "Apples, Pears, Plums"
我有一个使用复选框中的参数的搜索,如下所示:
params[:search] = ["Apples", "Oranges", "Bananas", "Grapefruit"]
由于我上面的@food 对象具有“Apples”并且搜索数组具有“Apples”,因此我希望此搜索能够成功。但是我无法正常工作。
我最初的想法是做类似的事情
@results = Food.where("fruit LIKE ?", "%params[:search]%")
或
@results = Food.where("fruit IN ?", params[:search])
但第一个仅在 params[:search] 仅包含 @food.fruit 元素且不包含其他元素时才有效。第二个根本不起作用。
我最后的办法是做类似的事情
@results = Array.new
params[:search].each do |search|
@results << Food.where("fruit LIKE ?", search)
end
但如果没有必要,我宁愿不这样做。有人有什么建议吗?
【问题讨论】:
标签: sql ruby-on-rails ruby-on-rails-3 search