2013-07-02 10 views
-2

두 가지 모델 : 시즌 및 카테고리가 있습니다. 시즌 인덱스보기에서 카테고리 이름을 표시하고 싶습니다. 내 시즌 양식에서레일스 has_one belongs_to 인덱스에 필드를 표시 하시겠습니까?

class Season < ActiveRecord::Base 
    attr_accessible :nb_down, :nb_up, :name, :category_id 
    has_one :category 
    accepts_nested_attributes_for :category 
end 

class Category < ActiveRecord::Base 
    attr_accessible :color, :name 
    belongs_to :season 
end 

는,이 같은 시즌에 카테고리를 추가 : 내 시즌 인덱스 뷰에

<%= f.collection_select :category_id, Category.all,:id,:name %> 

, 나는 모든 시즌 열 및 카테고리 이름을 표시합니다. 내가하고있는 이드의 고양이를 표시하고 있습니다 :

<% @seasons.each do |season| %> 
    <tr> 
    <td><%= link_to season.id, season_path(season) %></td> 
    <td><%= season.name %></td> 
    <td><%= season.nb_up %></td> 
    <td><%= season.nb_down %></td> 
    <td><%= season.category_id %></td> 
    (...) 

이드가 아닌 카테고리 이름을 표시하고 싶습니다. 나는 "season.category.name"을 시도하지만 작동하지 않습니다. 제 실수는 어디에서 제발요?

감사합니다 :)

[편집] : 난 범주에 season_id를 추가하는 마이그레이션을 만들고, 시즌 클래스에서 "belongs_to"에 의해 I "has_one"을 대체하고 그것을 작동 : 나는의 카테고리 이름을 표시 할 수 있습니다 시즌 인덱스보기.

+1

무엇이 오류입니까? –

+1

아마도 문제는 '계절'대신에 'saison'을 쓰는 것이겠습니까? –

+0

아니요 (실수로 죄송합니다), 죄송합니다. 죄송합니다. – John

답변

0

을 마이그레이션을 만들고 추가 catogeries 테이블에

실행이 마이그레이션을 만듭니다 터미널

rails generate migration add_column_Session_id_to_categories session_id:integer 

프로젝트의 루트 디렉토리에이 명령을 열 'SESSION_ID'지금이 명령을 실행

rake db:migrate 

모두 완료되었습니다.

+0

고맙습니다 답변을 위해 시즌별로 세션을 바꿉니다.하지만 season.category.name을 표시하려고 시도 할 때 새로운 오류가 발생합니다. "정의되지 않은 메서드 이름이 nil 인 경우 : NilClass" – John

+0

큰 소리로 답글을 썼습니다. 존은 그가해야 할 일이다. 너는 내가하는 것보다 더 많은 것을 필요로한다! – David

+0

@ 존 그냥이 줄을 바꿉니다 season.category.present 경우 <% = season.category.name? %> –