我的关联是否导致nil的未定义方法:NilClass?

时间:2017-10-16 21:54:49

标签: ruby-on-rails

我有这些模型和控制器代码:

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

在ruby控制台中键入Item.owner.username会返回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 个答案:

答案 0 :(得分:1)

显然,您有一个或多个Items没有Owner