尝试渲染局部变量时,局部变量总是为零

时间:2011-01-17 15:35:51

标签: ruby-on-rails-3 view partial

在尝试渲染集合时,我遇到了一个非常奇怪的问题,我甚至尝试了不同的方法。

这是我的部分代码(用于调试):

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

以下是我尝试使用它:

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

在每个场景中,partial只输出nil,但是如果我在每个循环中弹出item.inspect,对象详细信息将按预期显示。

我认为唯一可能是问题的是items关联是一个映射到不同类的短名称,所以我认为Rails 3自动化的东西可能会将它分配给一个变量来匹配类名,但是如果我尝试输出我得到'未定义的局部变量错误'。

我希望我忽略了一些愚蠢的事情。

1 个答案:

答案 0 :(得分:10)

你有没试过这个? -

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

<强>更新

以下是对该系列的猜测:

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