Nested_attributes 不要出现在我的参数中
Nested_attributes dont appear in my params
我正在尝试将 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 %>
我不知道为什么当我提交创建我的 masterbox 时,我的参数不包含 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
。
我有这个,只有 "orders" :
fields_for :orders
创建您看到的 orders
参数。您的强参数 orders_attributes: [:number]
的这一点允许传递 orders
的 numbers
属性。您应该查看收到的 orders
参数。那就是你想要的数据所在。
尝试将表单的第一行更改为:
<%= 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
我正在尝试将 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 %>
我不知道为什么当我提交创建我的 masterbox 时,我的参数不包含 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
。
我有这个,只有 "orders" :
fields_for :orders
创建您看到的 orders
参数。您的强参数 orders_attributes: [:number]
的这一点允许传递 orders
的 numbers
属性。您应该查看收到的 orders
参数。那就是你想要的数据所在。
尝试将表单的第一行更改为:
<%= 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