2017-10-16 10 views
0

私はこれらのモデルとコントローラのコードを持っている:ルビーコンソールにItem.owner.usernameを入力私のアソシエーションがnilの定義されていないメソッドを引き起こしていますか:NilClass?

class Item < ActiveRecord::Base 
belongs_to :owner, class_name: "User", foreign_key: :user_id 
end 

class User < ActiveRecord::Base 
has_many :owned_items, class_name: "Item" 
end 

class ItemsController < ApplicationController 
def index 
    @items = Item.search(params[:search]).approved.page(params[:page]) 
end 
end 

Item所有者のユーザー名を返しますが、私の見解では、ループの外で、次のビューのコードを呼び出すときに、

<% @items.each do |item| %> 
... 
... 
<div class="posted-to lightgrey">Posted by <a href=""><%= link_to item.owner.username, profile_path(item.owner.username) %></a></div> 
<% end %> 

undefined method 'username' for nil:NilClassというエラーが発生します。どうしてこれなの?

+2

「所有者」のない「アイテム」は、明らかに1つ以上あります。 – jvillian

+0

そのように見えます。私は、データモデルを変更する前に作成したシードデータを実行していました。 – sabaeus

+0

このコメントを答えにして、私はあなたにポイントを与えることができます – sabaeus

答えて

1

OwnerのないItemsがあります。

関連する問題