我有两个模特,父母和孩子。我希望,当我使用表格创建父母时,为他创造孩子。我有以下内容:
parent.rb
class Parent < ActiveRecord::Base
has_many :children
accepts_nested_attributes_for :children
end
child.rb
class Child < ActiveRecord::Base
belongs_to :parent
end
_form.rb
<%= form_for Parent.new do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %></br>
<%= f.label :last_name %>
<%= f.text_field :last_name %></br>
<%= f.label :email %>
<%= f.text_field :email %></br>
<%= f.label :phone %>
<%= f.text_field :phone %></br>
<%= f.fields_for Child.new do |builder| %>
<%= builder.label :first_name %><br>
<%= builder.text_field :first_name %><br>
<% end %>
<%= f.fields_for Child.new do |builder| %>
<%= builder.label :first_name %><br>
<%= builder.text_field :first_name %><br>
<% end %>
<%= f.submit %>
<% end %>
我希望能够在创建父母的同时为他创建一个或多个孩子。如果我提交此表单,我会收到消息Unpermitted parameter: child
。
同样在我的params哈希中,当我提交此表单时,我只获得最后一个孩子表单中的孩子的信息。如何解决这个问题?
这是我的params许可方法:
params.require(:parent).permit(:first_name, :last_name, :email, :phone, child:{})
答案 0 :(得分:0)
您以错误的方式允许儿童属性,请使用此:
params.require(:parent).permit(:first_name, :last_name, :email, :phone, children_attributes: [:first_name])