我的应用中有错误。我有一个嵌套的,它在新的,但不在我希望看到所有用户的内容的页面中完美呈现。 这是错误:
NoMethodError in Resumes#index
Showing /Users/antonella/Desktop/resumin/resume/app/views/resumes/index.html.erb where line #10 raised:
undefined method `educations' for nil:NilClass
Extracted source (around line #10):
7: <%= resume.personal_detail.address %>
8: <%= resume.personal_detail.telephone %>
9: </li>
10: <% @resume.educations.each do |education| %>
11: <li>
12: <%= resume.education.school_name %>
13: <%= resume.education.city %>
Rails.root: /Users/antonella/Desktop/resumin/resume
class Resume < ActiveRecord::Base
has_one :personal_detail
has_many :educations, :dependent => :destroy
accepts_nested_attributes_for :personal_detail
attr_accessible :personal_detail_attributes
validates_associated :personal_detail
accepts_nested_attributes_for :educations, :reject_if => lambda { |a| a[:education].blank? }, :allow_destroy => true
attr_accessible :education_attributes
validates_associated :education
end
def index
@resumes = Resume.all
end
class Education ‹ ActiveRecord::Base
belongs_to :resume
attr_accessible :school_name, :degree, :dates_attended, :type_of_study, :field_of_study, :city, :country
end
<h1>All resumes</h1>
<ul>
<% @resumes.each do |resume| %>
<li>
<%= resume.personal_detail.firstname %>
<%= resume.personal_detail.lastname %>
<%= resume.personal_detail.address %>
<%= resume.personal_detail.telephone %>
</li>
<% @resume.educations.each do |education| %>
<li>
<%= resume.education.school_name %>
<%= resume.education.city %>
<%= resume.education.country %>
<%= resume.education.dates_attended %>
<%= resume.education.degree %>
<%= resume.education.type_of_study %>
<%= resume.education.field_of_study %>
</li>
<% end %>
<% end %>
</ul>
答案 0 :(得分:0)
而不是:
<% @resume.educations.each do |education| %>
它应该是:
<% resume.educations.each do |education| %>
请注意,变量@resume
不存在。您只有@resumes
并且在循环内部有resume
。
您还必须更改此部分:
<li>
<%= resume.education.school_name %>
<%= resume.education.city %>
<%= resume.education.country %>
<%= resume.education.dates_attended %>
<%= resume.education.degree %>
<%= resume.education.type_of_study %>
<%= resume.education.field_of_study %>
</li>
要:
<li>
<%= education.school_name %>
<%= education.city %>
<%= education.country %>
<%= education.dates_attended %>
<%= education.degree %>
<%= education.type_of_study %>
<%= education.field_of_study %>
</li>