Collection of Partials, :as Option No Good, TemplateError


#1

I’m trying to render a collection of partials using :as. It raises an
undefined local variable exception. Not sure why:

~/delivery-log/app/views/packages $ ls -1
_package.html.erb
_package_list.html.erb
index.html.erb

index.html.erb:
<%=
render :partial=>‘package_list’, :collection=>@packages, :as=>:package
%>

_package_list.html.erb:

<%= package.upc %>

Seems simple, but it only raises the aforementioned exception:

ActionView::TemplateError (undefined local variable or method
`package’ for #ActionView::Base:0xb7589ac8) on line #2 of packages/
_package_list.html.erb:
1:


2: <%= package.upc %>
3:

#2

Why not use :locals => ?


#3

On Feb 24, 11:54 am, Eric removed_email_address@domain.invalid wrote:

On Feb 24, 11:13 am, MaggotChild removed_email_address@domain.invalid wrote:

I’m trying to render a collection of partials using :as. It raises an
undefined local variable exception. Not sure why:
Why not use :locals => ?

Sure there a workarounds, but they don’t explain why :as won’t work.


#4

On Feb 24, 1:54 pm, MaggotChild removed_email_address@domain.invalid wrote:

On Feb 24, 11:54 am, Eric removed_email_address@domain.invalid wrote:

On Feb 24, 11:13 am, MaggotChild removed_email_address@domain.invalid wrote:

I’m trying to render a collection of partials using :as. It raises an
undefined local variable exception. Not sure why:
Why not use :locals => ?

Sure there a workarounds, but they don’t explain why :as won’t work.

You’re right, of course (except for locals being a workaround), and it
seems like they should work the same or similar, but since :as is
nearly impossible to Google for I recommend whatever workable method
presents itself. That is, all other things being equal, whichever
method is better documented is the stronger one. But that’s just me.