Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Local variable always nil when trying to render partial

I'm getting a really strange issue with a partial when trying to render a collection, I've even tried different approaches.

Here is my partial code (for debugging):

<pre><%= item.inspect -%></pre>

And here are my attempts to use it:

<%= render 'item', :collection => @foo.items %>
<%= render 'item', :collection => @foo.items, :as => :item %>

<% @foo.items.each do |item| %>
    <%= render 'item', :locals => {:item => item} %>
    <%= render 'item', :object => item %>
<% end %>

In each of those scenarios the partial just outputs nil, however if I pop a item.inspect inside my each loop the object details are displayed as expected.

The only thing I thought that could be a problem is that the items association is a short name mapped to a different class, so I thought that Rails 3 automagic thing might be assigning it to a variable to match that class name, however if I try and output that I get the 'undefined local variable error'.

I hope I'm overlooking something silly.

like image 328
DEfusion Avatar asked Jan 17 '11 15:01

DEfusion


1 Answers

Have you tried this already? — 

<% @foo.items.each do |item| %>
    <%= render 'item', :item => item %>
<% end %>

Update

Here's a guess for the collection:

<%= render :partial => 'item', :collection => @foo.items, :as => :item  %>
like image 140
polarblau Avatar answered Oct 04 '22 00:10

polarblau