Rails 4:fields_for中的fields_for

我正在学习RoR,我正在尝试找到如何使用has_one模型在另一个中设置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 

我在Railscasts上使用嵌套模型表单第1部分来获取这些:在children_controller.rb中:

  def new @child = Child.new father=@child.build_father father.build_grandfather end def child_params params.require(:child).permit(:name, father_attributes:[:name], grandfather_attributes:[:name]) end 

我的表格:

  

mother:

grand mother:

我试图用以下方法检索数据:

   

但爷爷的名字不会起作用。 我找不到错误……有人帮忙吗? 谢谢!

尝试切换:

 <%= 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]])