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

Sai*_*fis 9 associations nested-forms ruby-on-rails-3

我想使用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
Run Code Online (Sandbox Code Playgroud)

调节器

def new
    @parent = Parent.new
    @parent.build_child
end
Run Code Online (Sandbox Code Playgroud)

视图

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

..在复制并查看它之后,这是一个可怕的类名.

ple*_*oux 12

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

<%= f.fields_for [...]
Run Code Online (Sandbox Code Playgroud)

代替 :

<% f.fields_for
Run Code Online (Sandbox Code Playgroud)

form_for也是如此