0

私はそのようなモデルを持っています

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 undefined method `last_name' for nil:NilClass で NoMethodErrorを取得します

ここに groups_controller があります

def show
  @group = Group.find(params[:id])
  @leader = @group.leader

なにが問題ですか?

UPD これも機能しません

<b>Leader:</b>
<%= @group.leader.last_name %>

私は本当に立ち往生しています/助けてください!

4

1 に答える 1

0

あなたの@group場合にはleader. その変数は nil なので、nil リーダーの名前を取得しようとするとエラーになります。

ページのその部分を if ブロックで囲んで、エラーが発生しないようにすることができます。

<% if @group.leader.nil? %>
  This group has no leader
<% else %>
  <%= @group.leader.last_name %>
<% end %>
于 2013-08-11T00:05:57.177 に答える