簡介: 我正在一個汽車經銷商的應用程序,所以我有一個名爲汽車carname_id和carmodel_id字段的表。 carname_id和carmodel_id取自兩個名爲carnames和carmodels的表格,我保留所有車名和車型。現在我已經建立了這些模型,以便我可以讓它們處於關係中,類似於belongs_to和has_many(不相關,因爲它的工作原理應該是這樣 - 我可以從選擇列表中將汽車和車型添加到新車上)Meta_Search undefined方法錯誤
我使用meta_search許多字段進行搜索,並在search_form代碼看起來像他
<%= f.label :make_contains, "Select Car Make" %>
<%= f.select :make_contains, Car::CAR_MAKE %>
<%= f.label :model_contains, "Select Model" %>
<%= f.text_field :model_contains, Car::CAR_MODEL %>
的品牌和型號字段是舊的Fileds在我用來存放汽車和型號名稱的汽車表的一輛車。但是,當我進入高級搜索表單時,我發現自己在選擇動態模型列表時遇到了困難。我在car.rb中列出了爲汽車列表指定的汽車名稱和汽車模型列表。我同意這是不是最好的辦法,這就是爲什麼我必須創建兩個表:汽車名稱和汽車模型,我已經告訴你在一開始..我已經設置了一切,並添加新車按預期工作,我可以選擇一個carname_id從carnames表和carmodel_id從carmodels表,並將其存儲在數據庫中完美地使用這樣一種形式:
<%= f.label :carname_id, "Car name:" %>
<%= f.select :carname_id, @select_carnames %>
<%= f.label :carmodel_id, "Model name:" %>
<%= f.select :carmodel_id, @select_carmodels %>
這樣,我放棄了從汽車表品牌和型號的領域,因爲我有2個新的工作領域carname_id和carmodel_id
現在的問題: 我怎樣才能使通過carmodel_id和carname_id搜索,使得形式像這樣的時候:
<%= f.label :carname_id_contains, "Model name:" %>
<%= f.select :carname_id_contains, @select_carnames %>
<%= f.label :carmodel_id_contains, "Model name:" %>
<%= f.select :carmodel_id_contains, @select_carmodels %>
返回我一個錯誤
未定義的方法`carname_id_contains'的元搜索: :搜索::汽車:0xb584b7a4
汽車控制器:
def index
@search = Car.search(params[:search])
@cars = @search.all.paginate :page => params[:page], :per_page => 18
@select_carnames = Carname.find(:all).map{|element| [element.name, element.id]}
@select_carmodels = Carmodel.find(:all).map{|element| [element.name, element.id]}
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @cars }
format.json { render :json => @cars.map(&:attributes) }
end
end
def new
@car = Car.new
@select_carnames = Carname.find(:all).map{|element| [element.name, element.id]}
@select_carmodels = Carmodel.find(:all).map{|element| [element.name, element.id]}
5.times { @car.assets.build }
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @car }
end
end
def edit
@car = Car.find(params[:id])}
@select_carnames = Carname.find(:all).map{|element| [element.name, element.id]}}
@select_carmodels = Carmodel.find(:all).map{|element| [element.name, element.id]}}<br />
5.times { @car.assets.build }
end
我希望我去把它儘可能地寫得好,我真的會對這個問題提供任何幫助和想法。謝謝你的時間。