2011-01-17 3 views
9

コレクションをレンダリングしようとすると部分的に問題が発生します。ここで部分をレンダリングしようとすると、ローカル変数は常にnilになります

(デバッグ用)の私の部分のコードです:

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

そして、ここではそれを使用する私の試みです:部分だけでnilを出力し、これらの各シナリオで

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

、しかし、もし私は各ループ内にitem.inspectをポップし、オブジェクトの詳細が期待通りに表示されます。

itemsアソシエーションは別のクラスにマッピングされた短い名前なので、私はRails 3のオートマジックのものがそのクラス名に一致する変数にアサインしている可能性があると考えていました。しかし、私が試して出力すると、私は '未定義のローカル変数エラー'を取得します。

私は何かばかげていることを見逃したいと思う。

答えて

10

これは既に試しましたか? -

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

更新

ここでは、コレクションのための推測です:

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

私は私が試したすべてのそれらのバリエーションの中で持っていたかなり確信していたが、動作しているようですと、私はないと思います。まだ私はコレクションを動作させることができない奇妙な(そして迷惑な)ようです。 – DEfusion

+0

うーん、それがうまくいくならば。コレクションについてまだ試してみたいことを追加しました。 – polarblau

+6

:part => 'item'部分は含めておらず、新しいRails 3の略語を使うとうまくいきませんが、それは動作しません。 – DEfusion

関連する問題