gpt4 book ai didi

ruby-on-rails-3 - Rails - 使用 form_for 和 fields_for,如何在 fields_for block 中访问子对象?

转载 作者:行者123 更新时间:2023-12-03 06:22:11 25 4
gpt4 key购买 nike

在我的第一个 Rails 应用程序中,我尝试使用 form_forfields_for 创建嵌套对象表单。到目前为止一切顺利,但我不知道如何在 fields_for block 中访问子对象。我已使用想要在用户说明中显示的数据预先填充了子对象中的字段。

模型
车库:

has_many :cars, :dependent => :destroy         
accepts_nested_attributes_for :cars

汽车:

belongs_to :garage

车库 Controller

def new
@garage = Garage.new
for i in 1..5
@garage.cars.build :stall_number => i
end
end

_form.html.erb

<%= form_for @garage do |f| %>
<%= f.label :title, "Garage Name" %><br />
<%= f.text_field :title %>
<% f.fields_for :cars do |builder| %>
<p>Enter license for car parked in stall: <%= car.stall_number %></p>
<%= f.label :license, "License #:" %><br />
<%= f.text_field :license %>
<%= end %>
<%= end %>

如您所见,在 :cars 的构建器 block 内,我想在用户说明中显示字段:car.stall_number(在我的 Controller 中用整数填充):

<p>Enter license for car parked in stall: <%= car.stall_number%></p>

我尝试了很多不同的想法:@car.stall_numberobject.car.stall_number等。没有乐趣。多次搜索和查看 fields_for 源代码并没有帮助我理解。我将不胜感激任何指导。

更新:为了澄清,根据 Dan 的建议,我尝试了 builder.stall_number 但结果是

NoMethodError: undefined method 'stall_number' for #<ActionView::Helpers::FormBuilder:0x00000102a1baf0>

最佳答案

我今天刚刚自己处理了这个问题。

您可以通过以下方式访问 fields_for 的对象:

builder.object

其中 builder 是您的 fields_for 表单构建器对象。根据您的具体情况,您可以说:

<p>Enter license for car parked in stall: <%= builder.object.stall_number%></p>

这应该适合你!

关于ruby-on-rails-3 - Rails - 使用 form_for 和 fields_for,如何在 fields_for block 中访问子对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038341/

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