我有一个这样的型号
class Group < ActiveRecord::Base
has_many :people
has_one :leader
attr_accessible :name
end
class Person < ActiveRecord::Base
belongs_to :group
end
class Leader < Person
belongs_to :group
attr_accessible :first_name, :last_name
end
然后我试图通过这个视图绘制一个组的页面
<p>
<b>Name:</b>
<%= @group.name %>
</p>
<p>
<b>Leader:</b>
<%= @leader.last_name %>
</p>
并在Groups#show中获取NoMethodErrornil:NilClass的未定义方法"last_name"
这是组_控制器
def show
@group = Group.find(params[:id])
@leader = @group.leader
怎么了?
UPD也不起作用
<b>Leader:</b>
<%= @group.leader.last_name %>
我真的被卡住了/请帮帮我!
您的案例中的@group
没有leader
。该变量为nil,因此当您尝试获取nil前导名称时会出错。
您可以将页面的这一部分放在if块中,以确保不会出现错误:
<% if @group.leader.nil? %>
This group has no leader
<% else %>
<%= @group.leader.last_name %>
<% end %>