2016-09-12 17 views
0

親と子の2つのモデルがあります。私はフォームを使って親を作りながら、彼のために子供を作りたいと思っています。私は、次のしている:Railsは複数のフォームのネストされた属性を受け入れます。

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 %> 

、彼のために1つまたは複数の子供を作成する。このフォームを提出すると、メッセージUnpermitted parameter: childが届きます。

また、私のparamsハッシュでは、このフォームを送信すると、最後の子フォームの子の情報しか得られません。これを修正するには?

これは私のparams許可方法である:

params.require(:parent).permit(:first_name, :last_name, :email, :phone, child:{}) 
+0

:':子供'また、paramsでは' children_attributes:{} 'ではなく' child:{} 'のようにフィルタリングしなければなりません。 – Surya

+0

私はまだ 'Unpermitted parameter:child'メッセージを持っています –

+0

私が言ったように、許可されなければならないparams情報をあなたのレールサーバのログで探します。 – Surya

答えて

0

あなたは子供を許可していることは間違った方法で、属性、これを使用してください:

代わりに `Child.new`試すの
params.require(:parent).permit(:first_name, :last_name, :email, :phone, children_attributes: [:first_name]) 
関連する問題