2012-12-14 20 views
11

これはとても簡単なことではありませんが、ここで何が起こっているのか分かりません。レンダリングで部分的にレンダリングする:コレクション

I持って、次のコード

class DashboardController < ApplicationController 
    def bookings 
     @bookings = Booking.all 
    end 
end 

/views/dashboard/bookings.html.erb

<%= render 'booking', :collection => @bookings %> 

/views/dashboard/_booking.html.erb

<%= booking.booking_time %> 

次のエラーが発生する

私は/views/dashboard/_bookings.html.erb

<% @bookings.each do |booking| %> 
    <%= render 'booking', :booking => booking %> 
<% end %> 

でこれを行う場合は、ここで起こっていただきまし

は、しかし、私は

2012-12-19 09:00:00 UTC 
2012-12-28 03:00:00 UTC 

(正しい)を取得しますか?私は本当に使いたい:ここに定義されているようなコレクション http://guides.rubyonrails.org/layouts_and_rendering.html

答えて

13

これは古い質問ですが、念の他の人がそれ部分が複数形のコレクションと呼ばれる

で苦労している、そして部分的に 個々のインスタンスは、 コレクションのメンバーへのアクセス権を持っています部分の名前を付けられた変数を介してにレンダリングされます。上記OPからの例でhttp://guides.rubyonrails.org/layouts_and_rendering.html

から

、部分的にbooking代わりにbookingsと呼ばれていたので、Railsは渡す従って必要、部分的に使用されるメンバー名を推測するために失敗しました明示的にはas: :booking

+0

これは受け入れられる回答である必要があります! –

4

あなたの呼び出しは、ガイドに示されているものとは異なります。 render :partial => 'booking', :collection => @bookingsを試しましたか?

私は、あなたがRails 3以降であることを前提として、より短い代替案を使用することもできると信じています。render @bookings

+0

ありがとうございます。うん、私はレンダリングしようとしました:部分=> '予約'、:コレクション=> @bookings - しかし、その同じ – 32423hjh32423

+7

奇数、追加しますか:as =>: – cbascom

+4

':as =>:booking'は私のためにこれを修正しました。コレクションから一意の名前を推測するためのレールマジックはありません。 – omnikron

関連する問題