2013-06-22 2 views
0

У меня есть эти моделиRails модель отношение сомнения

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

Для всех ваших оценочных рельсов вы получите учителя, а затем отобразите его имя. Если только у одной оценки нет учителя, она получит нуль для учителя, а затем попытается получить имя на этом нуле, тогда у вас будет ваша ошибка.

Попробуйте это: ответ

<td><% if evaluation.teacher %> 
    <%= evaluation.teacher.name %> 
<% end %></td> 
+0

Sylario работала отлично! Спасибо! –