2012-01-22 7 views
0

として表示すると、ボックスコントローラまたはビュー内のitem_category.name属性を正しく表示する方法はありますか?私は仕事をdoesntのこのようないくつかの構文がある予想しています下の例で親から子への親の属性を

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 nilのための未定義のメソッド` name」を" 与えます

EDIT: 申し訳ありませんが、アイテムクラスにはbelongs_to item_category(会社ではない)が含まれています。サンプルを編集しました。

+0

あなたのコントローラにコードを掲載してください。 – PhillipKregg

答えて

0

あなたの関連が正しく設定されているため、Itemには関連するカテゴリがありません。つまり、item_category_idフィールドがnilであるためです。

+0

申し訳ありませんが、アイテムクラスに入力してください。本当にbelongs_to:item_categoryがあります。オリジナルの質問を更新しました。この例では私にこのエラーが返されます:未定義メソッド 'name 'for nil:NilClass – koa

+0

Ok、答えを更新しました。 'item_category_id'が実際に有効な値を持っていることを確認してください。 –

+0

あなたは正しいです、私はitem_category_idの代わりにstringとしてitem_categoryをモデル化しました。 – koa

関連する問題