Rails:在嵌套模型表单中,子属性不会反映在表单上

时间:2012-08-01 16:21:11

标签: ruby-on-rails ruby

我正在关注嵌套模型Railscast的修订版:http://railscasts.com/episodes/196-nested-model-form-revised

我有一个类似的形式,railscast使用模型调查,问题,答案;但我有会员,孩子和照顾者。

我的代码与railscast几乎完全相同。我正在使用Rails 3.1.3和Ruby 1.9.2。

我的问题是,子元素属性没有反映在表单上。根据这个:http://archives.ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes没有必要在控制器上做任何事情......

  

这个解决方案的优点在于它可以让您的控制器脱离   混合并使提交的标准完美无缺   控制器级别的干扰。

如果我不这样做@member.children << Child.new,则不会出现表单的嵌套子元素。

def new
  @member = Member.new
  @member.children << Child.new

  respond_to do |format|
    format.html
  end
end

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您仍然需要为模型创建子记录才能让表单看到它 我会更改你的控制器使用构建而不是添加到数组

def new
  @member = Memeber.new
  @member.children.build
end