2012-01-21 4 views
1

레일스 3.1 앱에 문제가 있습니다. 카운티/카운티 및 타운/타운이라는 두 개의 컨트롤러 & 모델이 있습니다.레일 3.1 has_many & belongs_to로 정의되지 않은 메소드

카운티 모델의 모델은 has_many :towns이고 타운 모델은 belongs_to :county입니다.

마을 정보 페이지에 카운티 이름을 표시하여 제목을 '마을 정보 -county-name-'(으)로 표시하려고합니다. 그러나 %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.find을 할 수 index.html.erb 앱이/뷰/마을에서 그런

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

     t.timestamps 
    end 
    end 
end 

(county_id 아래 참조)

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

카운티. 핀트가 나를 위해 고쳐주었습니다.] –

0

@towns가 ... 마을의 모음입니다. 개인 마을이 아닙니다. 마을 컬렉션에는 카운티가 없습니다 (모델에 따라 다름). 개별 타운에는 카운티가 있습니다.

도시 인덱스 페이지를 방문하여 카운티에있는 도시를 표시하려는 경우 실제로 수행중인 작업이 명확하지 않습니다. 각 도시의 카운티를 나열하고 을 표시하려고합니까? 그 다른 카운티의 다른 마을? town.county.towns (하지만 "현재"마을을 삭제하고 싶을 것입니다).

나는 towns 페이지에 있기 때문에 counties 컨트롤러에 대해 무엇을 표시해야할지 모르겠다. 모든 카운티를 얻으려면 , 그렇게하십시오. 그러나 카운티 컨트롤러는 관련되지 않습니다.

+0

OK, 나는'Town.county.name'와'@의 town.county.name'을 시도하지만이 결혼식 웹 사이트입니다 같은 메시지 –

+0

을 보여줍니다. 영국에있는 카운티를 보여주고 싶습니다. 그리고 나서 각 카운티 아래에 그 카운티에서 사용할 수있는 타운을 보여주고 싶습니다. 그 카운티에 대한 타운 표시는 작동하지 않습니다. –

+0

@deanpcmad 카운티를 보여주고 싶다면 타운 인덱스에서 뭐하고 있니? 네가 카운티 색인에 대해 말하는 것 같네. –

관련 문제