私は次の2つのモデルを持っています
class Watersporttyp < ActiveRecord::Base
attr_accessible :name
has_many :activities
has_many :watersportspots, through: :activities
end
class Watersportspot < ActiveRecord::Base
attr_accessible :watersporttyp_ids, :latitude, :longitude, address
belongs_to :user
has_many :activities
has_many :watersporttyps, through: :activities
reverse_geocoded_by :latitude, :longitude
end
私のビューには、この検索フォームがあります
<%= form_tag watersportspots_path, :method => 'get' do %>
<div class="row collapse">
<div class="small-10 columns">
<%= text_field_tag :search, params[:search] %>
</div>
<div class="small-2 columns">
<%= submit_tag "Search", :name => nil, :class => "button prefix" %>
</div>
</div>
<div class="row">
<div class="small-12 columns">
<% Watersporttyp.all.each do |watersporttyp| %>
<%= check_box_tag "typs[]", watersporttyp.id %>
<%= watersporttyp.name %><br>
<% end %>
</div>
</div>
<% end %>
私の質問は、チェックボックス「types []」の属性で近くの場所をフィルタリングして検索を実行するようにコントローラーを設定する方法です。
コントローラーでこれを試しましたが、機能しません
@watersportspots = Watersportspot.near(params[:search], 50, :order => :distance, :units => :km).join(:watersporttyp).where(:watersporttyp => params[:typs])
ジオコーディングに geocoder gem を使用しており、システムで ruby 1.9.3 と Rails 3.2 を使用しています。