324*_*423 12 ruby-on-rails-3.2
这很简单,不应该是一个问题,但我不明白这里发生了什么.
我有以下代码
class DashboardController < ApplicationController
def bookings
@bookings = Booking.all
end
end
Run Code Online (Sandbox Code Playgroud)
/views/dashboard/bookings.html.erb
<%= render 'booking', :collection => @bookings %>
Run Code Online (Sandbox Code Playgroud)
/views/dashboard/_booking.html.erb
<%= booking.booking_time %>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
undefined method `booking_time' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
但是,如果我在/views/dashboard/_bookings.html.erb中执行此操作
<% @bookings.each do |booking| %>
<%= render 'booking', :booking => booking %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我得到(正确的)
2012-12-19 09:00:00 UTC
2012-12-28 03:00:00 UTC
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我真的想使用:这里定义的集合 http://guides.rubyonrails.org/layouts_and_rendering.html
Rog*_*Rog 18
这是一个古老的问题,但其他人正在努力解决这个问题
当使用复数集合调用partial时,partial的各个实例可以访问通过以partial命名的变量呈现的集合的成员.
来自http://guides.rubyonrails.org/layouts_and_rendering.html
在上面的示例中,由于调用了部分booking而不是bookings,因此Rails无法推断出要在部分中使用的成员名称,因此需要将其明确地传递为as: :booking
| 归档时间: |
|
| 查看次数: |
16810 次 |
| 最近记录: |