1

簡単な検索モデルを作成し、検索可能な 4 つの属性を作成しました。名前、年齢、場所、性別。私が抱えている問題は、複数の属性を検索するための正しいコードが見つからないように見えることです。

たとえば、「adam」を検索すると、adam という名前のすべてのユーザーが生成されますが、london を検索すると、london のすべてのユーザーが表示されます。個別に 1 つの属性 (名前) しか検索できないため、「london」と入力すると空白の結果ページが表示されます。

/people/index.html.erb (検索フォーム)

<%= form_tag people_path, :method => 'get'  do %>
  <%= text_field_tag :search, params[:search]%>
  <%= submit_tag "Search" %>
<% end %>

models/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
4

2 に答える 2

1

次のコードはうまくいきました。

where('name LIKE ? OR location LIKE ?', "%#{search}%","%#{search}%")

@meagar、その単純なコード行が「スタックオーバーフローの範囲外」であることがわかりません。

于 2013-08-14T16:59:47.767 に答える
0

問題のSunspot_rails gem をチェックアウトできます。これは、 Solr検索エンジン プラットフォームを Rails に統合し、Rails アプリの実証済みのソリューションです。私の会社の Web サイトである Fishtrip.cnでは、solr を使用して、ハウス、交通機関の小売業者、およびツアーの両方を検索しています。プロジェクトにとっては少し重いかもしれませんが、強力なソリューションを探しているなら、Sunspot は間違いなくその 1 つです。

于 2013-08-14T17:04:04.957 に答える