Local variable always nil when trying to render partial

与世无争的帅哥 提交于 2019-12-22 04:03:22

问题


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.


回答1:


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


来源:https://stackoverflow.com/questions/4714926/local-variable-always-nil-when-trying-to-render-partial

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!