2012-01-22 3 views
0

으로 표시하면 상자 컨트롤러 또는 뷰 내에 item_category.name 특성을 표시하는 올바른 방법은 무엇입니까?아래 예제에서 상위에서 하위로 상위 모델의 특성을

class Box < ActiveRecord::Base 
    has_one :item, :dependent => :destroy 
    accepts_nested_attributes_for :item, :allow_destroy => true 
end 


class Item < ActiveRecord::Base 
    belongs_to :box 
    belongs_to :item_category 

end 

class ItemCategory < ActiveRecord::Base 
    has_many :items 
    #contains 'name' attribute 
end 

나는 일 나던있는이 같은 일부 구문이 기대 오전 :

<%= @box.item.item_category.name %> 

이 "무기 호에 대한 정의되지 않은 메서드`이름 'NilClass를"나에게 다음과 같은 오류를 제공

감사

EDIT : 죄송합니다. 항목 클래스에 belongs_to item_category (회사가 아닌)가 포함되어 있으므로 샘플을 편집했습니다.

+0

컨트롤러에 코드를 게시하십시오. – PhillipKregg

답변

0

연결이 올바르게 설정되었으므로 Item에 연결된 카테고리가 없습니다. 즉, item_category_id 필드가 nil임을 의미합니다.

+0

죄송합니다. 항목 클래스에 오타가 있습니다. 실제로는 belongs_to : item_category가 있습니다. 업데이트 된 원래 질문. 이 예제에서는 나에게이 오류가 발생합니다. undefined method'name 'for nil : NilClass – koa

+0

Ok, 답변을 업데이트했습니다. 'item_category_id'가 실제로 유효한 값을 가지고 있는지 확인하십시오. –

+0

맞습니다. item_category_id 대신 string으로 item_category를 모델링했습니다. – koa

관련 문제