我有这样的模特
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>
并在群组中显示 NoMethodError nil的未定义方法`last_name':NilClass
这里是groups_controller
def show
@group = Group.find(params[:id])
@leader = @group.leader
有什么问题?
UPD 这也行不通
<b>Leader:</b>
<%= @group.leader.last_name %>
我真的卡住了/请帮助!
答案 0 :(得分:0)
您案例中的@group
没有leader
。那个变量是零,所以当你试图让nil领导者将它命名为错误时。
您可以将该部分页面封闭在if块中,以确保不会出现错误:
<% if @group.leader.nil? %>
This group has no leader
<% else %>
<%= @group.leader.last_name %>
<% end %>