gpt4 book ai didi

ruby-on-rails - 如何在不使用双循环的情况下执行此操作?

转载 作者:行者123 更新时间:2023-12-04 06:58:14 24 4
gpt4 key购买 nike

我正在尝试使用 fields_for 命令来组合两个模型编辑功能。我正在编辑几个变量。对于这些变量,我想包含一些与模型相关的基本信息,例如@line_item.inventory.item。我能做到这一点的唯一方法是创建一个双循环,该循环由于明显的原因而不起作用。有没有办法将两个参数传递给 for 循环?

IE。 fields_for :line_items & @order.line_items 做???

<% f.fields_for :line_items do |f| %>
<% for line_item in @order.line_items do %>


<td><%= line_item.inventory.item %></td>
<td><%= f.text_field :inventory_id, :size => 3 %></td>
<td><%= line_item.inventory.unit2_id %></td>
<td><%= line_item.inventory.catalognumber %></td>
<td><%= f.text_field :quantity, :size => 3 %></td>
<td> <%= f.text_field :item_price, :size => 3 %></td>
<td><%= f.text_field :total_price, :size => 3 %></td>
<td><%= f.check_box :received %><b>Received</b> </td>
<td><%= f.text_field :notes %></td>
<td><%= link_to 'remove item', line_item, :confirm => 'Are you sure?', :method => :delete %></td>

</tr>
<% end %>
<% end %>

最佳答案

你应该看看accepts_nested_attributes_for .如果使用得当,它可以解决您的问题。

假设包含表单是针对您想要将以下内容添加到 Order 模型的订单(如果它尚未存在)。

class Order < ActiveRecord::Base
has_many :line_items
accepts_nested_attributes_for :line_items
end

和观点:
<% form_for :order do |f| %>
...
Order specific fields
...
<% f.fields_for :line_items do |line_item_form| %>
<% line_item = line_item_form.object


<td><%= line_item.inventory.item %></td>
<td><%= line_item_form.text_field :inventory_id, :size => 3 %></td>
<td><%= line_item.inventory.unit2_id %></td>
<td><%= line_item.inventory.catalognumber %></td>
<td><%= line_item_form.text_field :quantity, :size => 3 %></td>
<td> <%= line_item_form.text_field :item_price, :size => 3 %></td>
<td><%= line_item_form.text_field :total_price, :size => 3 %></td>
<td><%= line_item_form.check_box :received %><b>Received</b> </td>
<td><%= line_item_form.text_field :notes %></td>
<td><%= link_to 'remove item', line_item, :confirm => 'Are you sure?', :method => :delete %></td>

</tr>
<% end %>

fields_for 与 accepts_nested_attributes_for 一起使用并给出关联时,将循环遍历已与父表单构建器的对象关联的所有项目。在所有其他情况下 fields_for 不使用循环。

关于ruby-on-rails - 如何在不使用双循环的情况下执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2277176/

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