具有嵌套属性的表单,其中has_one关联在Rails 3中不起作用

时间:2010-11-03 13:57:22

标签: ruby-on-rails-3 associations nested-forms

我想使用accepts_nested_attributes_for为两个具有has_one关联的模型设置值,但视图中不显示fields_for中的任何内容。

我已经确认相同的代码适用于Rails 2.x,并且它的has_many工作正常。 代码如下。

模型

class Parent < ActiveRecord::Base

  has_one :child
  accepts_nested_attributes_for :child
end

class Child < ActiveRecord::Base

  belongs_to :parent
end

控制器

def new
    @parent = Parent.new
    @parent.build_child
end

查看

<%= form_for @parent do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

  <% f.fields_for :child do |builder| %>

    <%= builder.label :childname %>
    <%= builder.text_field :childname %>
  <% end %>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

..在复制并查看之后,这是一个可怕的班级名称。

1 个答案:

答案 0 :(得分:12)

在rails 3中你应该使用(注意<%=中的等号):

<%= f.fields_for [...]

而不是:

<% f.fields_for

与form_for

相同