使用MetaSearch通过Rails 3中的关联进行搜索

Ale*_*lev 2 ruby-on-rails associations meta-search ruby-on-rails-3

我在我的Rails 3项目中使用了MetaSearch gem.

我有两个型号:

class Company < ActiveRecord::Base
  belongs_to :city
end

class City < ActiveRecord::Base
  has_many :companies
end
Run Code Online (Sandbox Code Playgroud)

我在CompaniesController中有动作:

def index
  @search = Company.search(params[:search])
  @companies = @search.all
end
Run Code Online (Sandbox Code Playgroud)

该动作的视图包含:

= form_for @search do |f|
  = f.label :city_id_equals
  = f.select :city_id_equals
  = f.submit 'Search'
Run Code Online (Sandbox Code Playgroud)

我想要一个包含城市名称的列表,以及按城市搜索公司的机会.但我没有城市的名称和ID,而是"City:0x00000102a20488",搜索功能不正常.

我认为错误在于:":city_id_equals".如何使其正确?

Ale*_*lev 5

找到了解决方案!

代替:

= f.label :city_id_equals
= f.select :city_id_equals
Run Code Online (Sandbox Code Playgroud)

我应该用:

= f.label :city_id_equals
= f.collection_select :city_id_equals, City.all, :id, :name, :include_blank => true
Run Code Online (Sandbox Code Playgroud)