Hi,
I have this invocation of a partial:
<%= render :partial => 'summary_line_item', @collection =>
@ec_order.ec_line_items %>
I thought just by naming the partial "summary_line_item", each item
from the collection would be named "summary_line_item". But I get
this error:
NoMethodError in Order#summary
Showing order/_summary_line_item.rhtml where line #12 raised:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.prescription_number
Here's the code for the partial
=====================Begin _summary_line_item.rhtml
NoMethodError in Order#summary
Showing order/_summary_line_item.rhtml where line #12 raised:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.prescription_number
Here's the code for the partial
=====================Begin _summary_line_item.rhtml
<div class="ec_line_item" style="width:100%">
<!-- stuff -->
Perhaps it's something in the above <!-- stuff -->
<div class="summaryField"><%=
summary_line_item.prescription_number %></div>
...
Any idea how to properly name that loop variable in the partial? I
can name it anything other than "ec_line_item", b/c I already have
another partial named "_ec_line_item.rhtml". - Dave
Having the other partial shouldn't restrict you, we're talking about
local variables here.
I guess I should take a step back. Given this from my summary.rhtml
file, how could I take the loop and convert it into a partial?
<% for summary_line_item in @ec_order.ec_line_items %>
<div class="ec_line_item" style="width:100%">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr><td class="lineItemHeader" style="background-image:url('<%=
image_path('/images/INSIDE_MENU_BAR-GreyRepeat_SM.gif');
%>');">Prescription #<span class="prescriptionNumber">#</span></td></
<tr><td style="background-color:#FFFFCC;">
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tr>
<td rowspan="2" valign="middle" align="center"><%=
image_tag '/images/RxICON_Cream.gif', options = {:alt => ""} %></td>
<td align="center" class="summaryFieldHeader">Refill
Number</td>
<td align="center" class="summaryFieldHeader">Description</
</tr>
<tr>
<td align="center" class="summaryField"><%=
summary_line_item.prescription_number %></td>
<td align="center" class="summaryField"><%=
summary_line_item.description %></td>
</tr>
</table>
</td></tr>
</table>
</div>
<% end %>
Thanks, - Dave
Ahh, I think I see your problem now:
<%= render :partial => 'summary_line_item', @collection =>
@ec_order.ec_line_items %>
should be:
<%= render :partial => 'summary_line_item', :collection =>
@ec_order.ec_line_items %>
As a commercial that I've seen would say ... brilliant! Thanks, -