10

に私はRoRのを学んでいると私はこのようにhas_oneモデルと別のものにfields_forを設定する方法を見つけるためにしようとしています:私はRailscastsにネストされたモデルフォームパート1を使用Railsの4:fields_for fields_for

class Child < ActiveRecord::Base 
    belongs_to :father 
    accepts_nested_attributes_for :father 
end 

class Father < ActiveRecord::Base 
    has_one :child 
    belongs_to :grandfather 
    accepts_nested_attributes_for :grandfather 
end 


class Grandfather < ActiveRecord::Base 
    has_one :father 
end 

これらを取得する:children_controller.rbで :

def new 
    @child = Child.new 
    [email protected]_father 
    father.build_grandfather 
    end 

def child_params 
     params.require(:child).permit(:name, father_attributes:[:name], grandfather_attributes:[:name]) 
    end 

そして、私形式:

<%= form_for(@child) do |f| %> 
    <div class="field"> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </div> 
    mother:<br> 
    <%= f.fields_for :father do |ff| %> 
    <%= ff.label :name %> 
    <%= ff.text_field :name %><br> 
     grand mother:<br> 
     <%= f.fields_for :grandfather do |fff| %> 
     <%= fff.label :name %> 
     <%= fff.text_field :name %> 
     <% end %> 
    <% end %> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

私は件のデータを取得しようとしています:

が、祖父の名前は動作しません。 私は間違いを見つけられません...誰かがこれを助ける? ありがとう!

答えて

15

てみスイッチング:

<%= f.fields_for :grandfather do |fff| %> 

へ:

<%= ff.fields_for :grandfather do |fff| %> 

とスイッチング:

params.require(:child).permit(:name, father_attributes:[:name], grandfather_attributes:[:name]) 

へ:

params.require(:child).permit(:name, father_attributes:[:name, grandfather_attributes:[:name]]) 
+0

それは完璧に動作します!どうもありがとうございました! – user3029400

関連する問題