[英]Rails : search multiple attributes
我設法建立了一個簡單的搜索模型,並具有四個可以搜索的屬性。 姓名,年齡,位置和性別。 我遇到的問題是我似乎找不到正確的代碼來搜索多個屬性。
例如,搜索“ adam”應產生所有名為adam的用戶,而搜索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
下面的代碼工作正常。
where('name LIKE ? OR location LIKE ?', "%#{search}%","%#{search}%")
@meagar,我不明白那簡單的代碼行“超出了堆棧溢出的范圍”。
您可以通過Sunspot_rails gem來解決問題,它將Solr搜索引擎平台集成到Rails中,並且是經過驗證的Rails應用解決方案。 在我公司的網站Fishtrip.cn中,我們使用solr來搜索房屋,運輸零售商和旅行團。 這對於您的項目可能有點繁重,但是如果您正在尋找功能強大的解決方案,那么Sunspot肯定是其中之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.