2016-09-12 2 views
0

두 가지 모델, 상위 및 하위가 있습니다. 나는 양식을 사용하여 부모를 창조하면서 그를 위해 자녀를 만들고 싶습니다. 나는 다음과 같은 한 :레일은 여러 양식에 대해 중첩 된 속성을 허용합니다.

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.require(:parent).permit(:first_name, :last_name, :email, :phone, child:{}) 
+0

:': 어린이 '또한 params에서는'children_attributes : {}'가 아닌 :'child : {}'를 필터링해야합니다. 레일스 서버 로그에있는 양식의 매개 변수에 무엇이 들어 있는지 찾아보십시오. – Surya

+0

아직 '허용되지 않은 매개 변수 : 자식'메시지가 있습니다. –

+0

내가 말했듯이, 허용되어야하는 params 정보를 레일 서버 로그에서 찾으십시오. – Surya

답변

0

당신은 아이들을 허용하는 것은 잘못된 방법으로 속성이 사용하십시오 :

대신`Child.new` 시도의
params.require(:parent).permit(:first_name, :last_name, :email, :phone, children_attributes: [:first_name]) 
관련 문제