gpt4 book ai didi

ruby-on-rails-3.2 - Rails 使用 :collection 渲染部分

转载 作者:行者123 更新时间:2023-12-04 00:35:58 27 4
gpt4 key购买 nike

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

我有以下代码

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

我收到以下错误
undefined method `booking_time' for nil:NilClass

但是,如果我在/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

这是怎么回事?我真的很想使用 :collection 定义在这里
http://guides.rubyonrails.org/layouts_and_rendering.html

最佳答案

这是一个老问题,但以防万一其他人正在为此苦苦挣扎

When a partial is called with a pluralized collection, then the individual instances of the partial have access to the member of the collection being rendered via a variable named after the partial.



来自 http://guides.rubyonrails.org/layouts_and_rendering.html

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

关于ruby-on-rails-3.2 - Rails 使用 :collection 渲染部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13872003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com