I'm trying to create a partial for my entity requirement which has an attribute of name. Requirements are associated to Projects. I am trying to render this partial for Requirements on the Project show page. I get the following error on load.
NoMethodError in Projects#show Showing .....xus/app/views/requirements/_requirement.html.erb where line #5 raised:
undefined method `name' for nil:NilClass
In my partial, _requirement.html.erb
<%= div_for requirement do %>
<h4>
<%= requirement.name %>
</h4>
<%= requirement.requirement_type.name %>
<%= requirement.requirement_priority.name %>
<%= simple_format requirement.detail %>
<% end %>
The relevant section of my Project show template
<h3>Project Requirements</h3>
<div id="requirements_display">
<%= render :partial => "requirements/requirement", :locals => {:requirement => @requirement} %>
</div>
<div id="requirements_module">
<h3>Add New Requirement</h3>
<%= render :file => "requirements/new" %>
</div>
I also tried rendering the partial using
<h3>Project Requirements</h3>
<div id="requirements_display">
<%= render @project.requirements %>
</div>
But not look there, either. Any insight is greatly appreciated. Thanks all!
requirement.requirement_typeis nil, and yet you're trying to call.nameon it. What is requirement_type? From your description, it sounds like you meant to put justrequirement.requirement_typeinstead? - MrTheWalrus