2012-01-21 93 views
1

我遇到了Rails 3.1應用程序的問題。我有兩個控制器&模型,命名縣/縣和鎮/鎮。Rails 3.1未定義的方法has_many&belongs_to

該縣模型有has_many :towns,鎮模型有belongs_to :county

我想顯示鎮名索引頁上的縣名顯示標題爲'鎮在 - 縣名 - '。但是,當我把%h1 Towns in #{@towns.county.name}我得到undefined method 'county'錯誤。

城鎮控制器指數

def index 
    @towns = Town.all 
end 

對於縣城控制器:

def index 
    @counties = County.all 
end 

routes.rb

resources :counties, :path => "/locations" do 
    resources :towns, :path => "/" 
end 

我在做什麼錯?

編輯:在我的城市/索引視圖利用這一點,它顯示了town.county.idtown.county.name

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

回答

0

我有一個類似的問題與州和國家(與城鎮和縣)。 爲了您的城鎮遷移,你有一個整數引用縣(見county_id下面

class CreateTowns < ActiveRecord::Migration 
    def change 
    create_table :towns do |t| 
     t.string :name 
     t.integer :county_id 

     t.timestamps 
    end 
    end 
end 
在您的應用程序/視圖/鎮

然後/ index.html.erb你可以做一個County.find

%tr 
    %td= town.county.id 
    %td= County.find(town.county_id).name 
    %td= town.name 
    %td= town.description 
    %td= town.slug 
+0

County.find修復了我=] –

0

@towns是...城鎮的集合。不是個別城鎮。一個城鎮的集合沒有縣(根據你的模型),只有一個城鎮有一個縣。

如果你在城鎮索引頁面上,並且試圖在縣裏展示城鎮,目前尚不清楚你真的在做什麼 - 你是否列出每個城鎮的縣,並試圖顯示那縣的其他鎮?這將是town.county.towns(但您可能想要刪除「當前」城鎮)。

我不知道你爲什麼要爲counties控制器顯示任何內容,因爲你在towns頁面。如果你想得到所有的縣,那麼這樣做,但縣管制員不參與。

+0

OK,我已經試過'town.county.name'和'@ town.county.name'但它顯示了相同的消息 –

+0

這是一個婚禮網站。我想要顯示縣在英國可用,然後在每個縣下,我想然後顯示在該縣可用的城鎮:)顯示該縣的城鎮不工作 –

+0

@deanpcmad如果你想顯示縣,你在城鎮指數上做什麼?聽起來像你在談論縣指數。 –

相關問題