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

DEf*_*ion 9 view partial ruby-on-rails-3

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

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

<pre><%= item.inspect -%></pre>
Run Code Online (Sandbox Code Playgroud)

以下是我尝试使用它:

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

在每个场景中,部分只输出nil,但是如果我item.inspect在每个循环内部弹出一个对象细节,则按预期显示.

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

我希望我忽视了一些愚蠢的事情.

pol*_*lau 10

你有没试过这个? - 

<% @foo.items.each do |item| %>
    <%= render 'item', :item => item %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

更新

这是对集合的猜测:

<%= render :partial => 'item', :collection => @foo.items, :as => :item  %>
Run Code Online (Sandbox Code Playgroud)

  • 哇,如果你不包括:partial =>'item'部分并使用新的Rails 3简写部分名称它不起作用,但具体使它工作. (6认同)