2012-01-22 50 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」

感謝

編輯: 對不起,該項目類包含belongs_to item_category(不是公司),我編輯了示例。

+0

將代碼發佈到您的控制器中。 – PhillipKregg

回答

0

由於您的關聯設置正確,這可能是因爲您的Item沒有關聯的類別,這意味着它的item_category_id字段是nil

+0

對不起,項目類中的拼寫錯誤確實有belongs_to:item_category。更新了原始問題。這個例子給我這個錯誤:未定義的方法名稱爲零:NilClass – koa

+0

好的,更新了答案;確保'item_category_id'實際上有一個有效的值。 –

+0

你是對的,我將item_category建模爲字符串而不是item_category_id。 – koa