我有这些模型和控制器代码:
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
错误。这是为什么?
答案 0 :(得分:1)
显然,您有一个或多个Items
没有Owner
。