Meta_Search未定义的方法错误

简介:我正在开发汽车经销商应用程序,所以我有一个名为cars的表,其中包含字段carname_id和carmodel_id。 carname_id和carmodel_id取自2个名为carnames和carmodels的表格,我保留所有车名和车型。 现在我已经设置了这些模型,所以我可以将它们放在一个关系中,比如belongs_to和has_many(不相关,因为它的工作原理应该是这样 – 我可以从选择列表中将汽车和模型添加到新车中)

我使用meta_search来搜索许多字段,search_form中的代码看起来像他的

    

make和model字段是cars表中用于存储汽车和汽车型号名称的旧文件。 但是当我进入高级搜索表单时,我发现自己陷入了选择动态模型列表..我在car.rb中列出了为汽车列表指定的汽车名称和汽车模型列表..我同意这是不是最好的方法,这就是为什么我必须创建2个表:我在开始时告诉你的Carnames和carmodels ..我已经设置了所有内容并且添加新车按预期工作,我可以选择carname_id来自carnames表和来自carmodels表的carmodel_id,它使用如下forms完美地存储在数据库中:

     

这样我放弃了汽车表中的制造和模型字段,因为我有2个新的工作字段carname_id和carmodel_id

现在问题:在制作像这样的表格时,如何通过carmodel_id和carname_id进行搜索:

     

给我一个错误
MetaSearch的未定义方法`carname_id_contains’::搜索:: Car: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]}}
5.times { @car.assets.build } end

我希望我把它描述得尽可能好,我真的会对这个问题提出任何帮助和想法。 谢谢大家的时间。

答案是

 <%= f.label :carname_id_equals, "Model name:" %> <%= f.collection_select :carname_id_equals, Carname.order('name ASC').all, :id, :name, :include_blank => true %>
<%= f.label :carmodel_id_equals, "Model name:" %> <%= f.collection_select :carmodel_id_equals, Carmodel.order('name ASC').all, :id, :name, :include_blank => true %>

我将来需要阅读更多的Rdoc 🙂