簡體   English   中英

Rails:搜索多個屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM