2011-01-17 14 views
9

Tengo un problema realmente extraño con un parcial cuando intento renderizar una colección, incluso he intentado diferentes enfoques.Variable local siempre nula al tratar de hacer parcial

Aquí está mi código parcial (para depuración):

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

Y aquí están mis intentos de utilizarlo:

<%= 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 %> 

En cada uno de estos escenarios lo parcial solo salidas nulas, sin embargo, si Aparece un item.inspect dentro de cada bucle, los detalles del objeto se muestran como se esperaba.

Lo único que pensé que podría ser un problema es que la asociación items es un nombre corto asignado a una clase diferente, así que pensé que Rails 3 podría estar asignándolo a una variable para que coincida con ese nombre de clase, sin embargo, si intento y obtengo el resultado, obtengo el "error de variable local indefinido".

Espero estar pasando por alto algo tonto.

Respuesta

10

¿Has probado esto ya? -

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

actualización

Aquí es una suposición para la colección:

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

yo estaba bastante seguro de que tenía entre todas aquellas variaciones que probé pero supongo que no, ya que parece que funciona. Todavía parece extraño (y molesto) que no pueda hacer que la colección funcione. – DEfusion

+0

Bueno, bueno si funciona. He agregado algo que todavía probaría con respecto a la colección. – polarblau

+6

Guau si no incluye la parte: partial => 'item' y usa la nueva taquigrafía de Rails 3 de solo el nombre parcial, no funciona, pero ser específico la hace funcionar. – DEfusion

Cuestiones relacionadas