У мене є ці моделі
class Course < ActiveRecord::Base
attr_accessible :name
has_many :teachers
end
class Teacher < ActiveRecord::Base
attr_accessible :id, :name, :course_id
belongs_to :course
has_many :evaluations
end
class Evaluation < ActiveRecord::Base
attr_accessible :teacher_id, :course_id
belongs_to :teacher
end
це перегляд / оцінки / index.html.erb файл
<% @evaluations.each do |evaluation| %>
<tr>
<td><%= evaluation.teacher_id %></td>
<td><%= link_to "Show", evaluation %></td>
<td><%= link_to "Edit", edit_evaluation_path(evaluation) %></td>
<td><%= link_to "Destroy", evaluation, :method => :delete, :data => { :confirm => "Are you sure?" } %></td>
</tr>
<% end %>
Я хочу показати ім'я вчителя:
<td><%= evaluation.teacher.name %></td>
але це не працює. Rails показує цю помилку:
"undefined method `name" for nil:NilClass"
Чи може хто-небудь мені допомогти?
Відповіді:
0 для відповіді № 1Для всіх ваших оцінок рейки отримаєтеЯкщо тільки одна оцінка не має вчителя, вона отримає нуль для вчителя, а потім спробує отримати ім'я на цій нуль, то у вас є ваша помилка.
Спробуйте це :
<td><% if evaluation.teacher %>
<%= evaluation.teacher.name %>
<% end %></td>