2011-07-06 16 views
2

私はRails 3プロジェクトでMetaSearch gemを使用しています。Rails 3とMetaSearchで検索する

私は2つのモデルがあります:私はへの都市名のリストをしたい

= form_for @search do |f| 
    = f.label :city_id_equals 
    = f.select :city_id_equals 
    = f.submit 'Search' 

def index 
    @search = Company.search(params[:search]) 
    @companies = @search.all 
end 

アクションのビューが含まれています。私はCompaniesControllerでアクションを持っている

class Company < ActiveRecord::Base 
    belongs_to :city 
end 

class City < ActiveRecord::Base 
    has_many :companies 
end 

を都市によって企業を検索する機会を提供します。しかし都市の名前とIDではなく、 "City:0x00000102a20488"のようなものがあり、検索が正しく機能しません。

私は間違いが「:city_id_equals」だと思います。正しい方法は?

答えて

5

解決策が見つかりました!

= f.label :city_id_equals 
= f.select :city_id_equals 

私が使用する必要があります:代わりの

= f.label :city_id_equals 
= f.collection_select :city_id_equals, City.all, :id, :name, :include_blank => true 
0

本当にあなたの質問が本当にわかりません。

まず、rubyオブジェクトの文字列表現である<City:0x00000102a20488>のようなものがあると思います。市の名前を表示したい場合は、city.name(都市に名前のメンバーがいると仮定します)のトリックが必要です。

検索のために、私はあなたがしようとしていることを実際には得ていません。 :city_id_equalsとは何ですか?

+0

はI悲しいとして、私は選択した都市に属する企業を検索したいです。 MetaSearchの宝石については、[link](http://metautonomo.us/projects/metasearch/)のドキュメントを読んでください。関連付けのあるフィールドの例は "f.text_field:developers_notes_note_contains"です。私はこのようなものが欲しいが、text_fieldの代わりにselectタグを使う。 –

関連する問題