ジオコーダを使用した検索フォームにフィルタを追加する方法についていくつかのアドバイスをしたいと思います。Rails検索ジオコーダへのフィルタの検索と追加
私はUserモデルと動物モデル(動物は型引数を得た)
そしてはテーブルに参加しました:Animal_ID/user_idをとAnimal_User)
右今、私は都市の周りのキロメートルの選択肢を持つ都市の周りのユーザーを見つけることができます。うまくいきます。
私はそれは素晴らしい:)
検索このようになりますでしょう、動物の種類にフィルタを追加したいと思います:犬
多くのおかげで:ロンドン> 10KM>タイプでフィルターあなたがそれをどうやって行うかについてのアイデアを垣間見るならば、事前に。検索htmlとコントローラが見つかります。あなたはユーザーモデルまたは動物モデルを必要とする場合、私はあまりにもそれを投稿することができます
search.html.erb
<div class="search-bar">
<%= form_tag search_path, :class => "webdesigntuts-workshop", method: :get do %>
<%= label :user, "" %>
<%= text_field_tag :city, params[:city], placeholder: 'City', :input_html => { :value => 'Paris' } %>
<%= label :distance, "" %>
<%= text_field_tag :distance, params[:distance], placeholder: 'km', :input_html => { :value => '10' } %>
<%= submit_tag "Search" %>
<% end %>
</div>
検索コントローラ
class SearchsController < ApplicationController
def search
if params[:city].present?
@searchs = User.near(params[:city], params[:distance] || 10).where("id != ?", current_user.id)
else
@searchs = User.all.where("id != ?", current_user.id)
end
end
end
私はそれがうまくいくと思います、ありがとう、もう少しテストしなければなりませんが、非常にシンプルで効率的です;) –
私は '.where(id:current_user.id')に関する質問をしています。その結果、それはcurrent_userだけを表示し、他のユーザーはdifferentsではありませんでした。私はこれを試しました。 "(" id!=? "、current_user.id) 'しかし、それは動作していません。ありがとう、私は近いです;)、私はその上で検索を続けます –
ああ、current_userは通常あなたの認証システムによって提供されるメソッドであり、実際に現在ログインしているユーザーを返します。あなたの検索フォームにユーザーコレクションの選択項目を追加し、他のユーザーが検索する場合は、current_user.idの代わりにparams [:user_id]と一致するものを使用してください。 – Baradzed