我已经设法建立了一个简单的搜索模型,并且有四个可以搜索的属性;姓名、年龄、地点和性别。我遇到的问题是我似乎找不到正确的代码来搜索多个属性。
例如,搜索“adam”应生成所有名为 adam 的用户,而搜索 london 应显示来自 london 的所有用户。我只能单独搜索一个属性(名称),所以如果我输入“london”,它会显示一个空白的结果页面。
/people/index.html.erb(搜索表单)
<%= form_tag people_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search]%>
<%= submit_tag "Search" %>
<% end %>
模型/person.rb
class Person < ActiveRecord::Base
attr_accessible :age, :gender, :location, :name
def self.search(search, id)
if search
where(['name LIKE ?', "%#{search}%"])
else
scoped
end
end
end
people_controller.rb
def index
@people = Person.search(params[:search], params[:id])
end