Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用元搜索在Rails 3中按关联进行搜索_Ruby On Rails_Ruby On Rails 3_Associations_Meta Search - Fatal编程技术网

Ruby on rails 使用元搜索在Rails 3中按关联进行搜索

Ruby on rails 使用元搜索在Rails 3中按关联进行搜索,ruby-on-rails,ruby-on-rails-3,associations,meta-search,Ruby On Rails,Ruby On Rails 3,Associations,Meta Search,我正在Rails 3项目中使用MetaSearch gem 我有两种型号: class Company < ActiveRecord::Base belongs_to :city end class City < ActiveRecord::Base has_many :companies end 该操作的视图包含: = form_for @search do |f| = f.label :city_id_equals = f.select :city_id_eq

我正在Rails 3项目中使用MetaSearch gem

我有两种型号:

class Company < ActiveRecord::Base
  belongs_to :city
end

class City < ActiveRecord::Base
  has_many :companies
end
该操作的视图包含:

= form_for @search do |f|
  = f.label :city_id_equals
  = f.select :city_id_equals
  = f.submit 'Search'
我希望提供一份城市名称列表,并提供按城市搜索公司的机会。但是我没有使用城市的名称和ID,而是使用类似“City:0x00000102A2A20488”的内容,搜索无法正常工作


我认为错误就在这里:“:city\u id\u equals”。如何使其正确?

不确定您的问题是否真正清楚

首先,我猜您有类似于
的东西,它是ruby对象的字符串表示。如果您想显示城市的名称,
city.name
应该可以(假设您在城市中有一名成员!)

对于搜索,我真的不明白你想做什么。什么是
:city\u id\u equals对你来说意味着什么?

解决方案找到了

而不是:

= 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

我很难过,我想搜索属于选定城市的公司。A在这里阅读MetaSearch gem的文档:,这里有一个关联字段的示例:“f.text\u field:developers\u notes\u note\u contains”。我想要像这样的东西,但是有一个选择标记而不是文本字段。
= f.label :city_id_equals
= f.collection_select :city_id_equals, City.all, :id, :name, :include_blank => true