我正在尝试将nested_form
包含在我的一个新模型中。
<%= form_for :master_box, url: master_boxes_path do |f| %>
<%= f.label :number %><br>
<%= f.text_field :number %>
<%= f.fields_for :orders do |o| %>
<fieldset>
<%= o.label :number, "Number" %>
<%= o.text_field :number %>
</fieldset>
<% end %>
<br>
<%= f.submit %>
<% end %>
我不知道为什么当我提交创建我的主箱时,我的参数不包含orders_attributes
。
这是我的模特:
class MasterBox < ActiveRecord::Base
has_many :orders
accepts_nested_attributes_for :orders
end
class Order < ActiveRecord::Base
has_many :products
belongs_to :master_box
end
和我强大的参数:
def master_box_params
params.require(:master_box).permit(:number, :number_orders, orders_attributes: [:number])
end
这很简单,但我不明白为什么我的参数中没有orders_attributes
。
我有这个,只有“订单”:
答案 0 :(得分:1)
尝试将表单的第一行更改为:
<%= form_for @master_box, url: master_boxes_path do |f| %>
并且还通过你的参数中的id:
def master_box_params
params.require(:master_box).permit(:number, :number_orders, orders_attributes: [:id, :number])
end
答案 1 :(得分:0)
fields_for :orders
会创建您看到的orders
参数。您的强参数orders_attributes: [:number]
的这一部分允许numbers
的{{1}}属性通过。您应该查看您收到的orders
参数。这就是你想要的数据。