Ruby on rails 3.2 Rails使用:集合呈现部分

Ruby on rails 3.2 Rails使用:集合呈现部分,ruby-on-rails-3.2,Ruby On Rails 3.2,这很简单,不应该是个问题,但我不明白这里发生了什么 我有以下代码 class DashboardController < ApplicationController def bookings @bookings = Booking.all end end 但是,如果我在/views/dashboard/_bookings.html.erb中执行此操作 <%= render 'booking', :collection => @bookings %&

这很简单,不应该是个问题,但我不明白这里发生了什么

我有以下代码

class DashboardController < ApplicationController
    def bookings
      @bookings = Booking.all
    end
end
但是,如果我在/views/dashboard/_bookings.html.erb中执行此操作

<%= render 'booking', :collection => @bookings %>
<% @bookings.each do |booking| %>
   <%= render 'booking', :booking => booking %>
<% end %>
这是怎么回事?我真的想使用这里定义的:collection

对渲染的调用与指南中显示的不同。您是否尝试过
render:partial=>'booking',:collection=>@bookings


我相信,如果您使用的是Rails 3或更高版本,您也应该能够使用较短的选项:
render@bookings

这是一个老问题,但万一其他人正在努力解决它

当使用复数集合调用分部时,则 分部的单个实例可以访问 通过以分部命名的变量呈现集合


在上面的OP示例中,由于分部被称为
booking
而不是
bookings
,Rails无法推断分部中要使用的成员名称,因此需要将其显式传递为
as::booking

谢谢。是的,我试过render:partial=>'booking',:collection=>@bookings-但这是相同的,添加:as=>:booking到render调用会改变什么吗?
:as=>:booking
为我解决了这个问题,我想从集合中推断出单数名称并没有任何rails的魔力。
undefined method `booking_time' for nil:NilClass
<% @bookings.each do |booking| %>
   <%= render 'booking', :booking => booking %>
<% end %>
2012-12-19 09:00:00 UTC 
2012-12-28 03:00:00 UTC