我有以下 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 %>
我的问题是如何设置我的控制器通过使用复选框“类型 []”中的属性过滤附近的位置来执行搜索
我在我的控制器中尝试了这个,但它不起作用
@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