Ruby on rails 3 Rails 3.1未定义的方法,具有多个&;属于

Ruby on rails 3 Rails 3.1未定义的方法,具有多个&;属于,ruby-on-rails-3,ruby-on-rails-3.1,has-many,Ruby On Rails 3,Ruby On Rails 3.1,Has Many,我的Rails 3.1应用程序有问题。我有两个控制器和模型,分别命名为县/县和镇/镇 县模型有多个:城镇,镇模型有属于:县 我试图在城镇索引页面上显示县名称,以将标题显示为“城镇所在地-县名称-”。但是,当我将%h1 Towns放入{@Towns.country.name}中时,我得到一个未定义的方法“country”错误 索引的控制器为 def index @towns = Town.all end 对于县控制员: def index @counties = County.a

我的Rails 3.1应用程序有问题。我有两个控制器和模型,分别命名为县/县和镇/镇

县模型有
多个:城镇,镇模型有
属于:县

我试图在城镇索引页面上显示县名称,以将标题显示为“城镇所在地-县名称-”。但是,当我将
%h1 Towns放入{@Towns.country.name}
中时,我得到一个
未定义的方法“country”
错误

索引的控制器为

def index
    @towns = Town.all
end
对于县控制员:

def index
    @counties = County.all
end
我的
routes.rb

resources :counties, :path => "/locations" do
    resources :towns, :path => "/"
end
我做错了什么

编辑:在我的城镇/索引视图中使用此选项,它将显示
城镇.country.id
城镇.country.name

- @towns.each do |town|
  %tr
    %td= town.county.id
    %td= town.county.name
    %td= town.name
    %td= town.description
    %td= town.slug

@towns
是。。。城镇。不是一个单独的城镇。城镇集合没有县(根据您的模型),只有单个城镇有县

如果你在城镇索引页面上,试图显示一个县的城镇,你不清楚你到底在做什么——你是在为每个城镇列出该县,并试图显示该县的其他城镇吗?这将是
town.country.towns
(但您可能希望删除“当前”城镇)


我不知道你为什么要为
控制器显示任何内容,因为你在
城镇
页面上。如果你想得到所有的县,那么就这样做,但是县控制员没有参与。

我在州和国家(与城镇和县)也有类似的问题。 对于您的城镇迁移,您是否有一个整数来引用县(请参见下面的县id


好的,我试过
Town.country.name
@Town.country.name
,但它显示的信息与婚礼网站相同。我想显示英国可用的县,然后在每个县下,我想显示该县可用的城镇:)显示该县的城镇不起作用either@deanpcmad如果你想显示县,你在城镇指数上做什么?听起来你说的是县索引。@deanpcmad那里可能没有一个
@镇
;如果您在
@towns
上迭代,您可能会有一个
town
<代码>城镇.县.名称
是正确的。我觉得有点混乱。/locations页面显示可用的县。然后单击该位置,例如/locations/hampshire,我想显示可用的城镇,然后转到/locations/hampshire/southampton。我一直在试图在城镇索引页面上显示县名,显示所选县中的城镇。我还有一个问题,我选择的任何一个县都会显示所有的城镇。我猜这可能与县政府有关。为我查找并修复它=]
class CreateTowns < ActiveRecord::Migration
  def change
    create_table :towns do |t|
      t.string :name
      t.integer :county_id

      t.timestamps
    end
  end
end
 %tr
    %td= town.county.id
    %td= County.find(town.county_id).name
    %td= town.name
    %td= town.description
    %td= town.slug