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
というエラーが発生します。どうしてこれなの?
「所有者」のない「アイテム」は、明らかに1つ以上あります。 – jvillian
そのように見えます。私は、データモデルを変更する前に作成したシードデータを実行していました。 – sabaeus
このコメントを答えにして、私はあなたにポイントを与えることができます – sabaeus