我正在尝试使用accepts_nested_attributes_for为具有has_one关联的两个模型设置值,但是在 View 中未显示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

Controller
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 %>

..然后复制并查看它,那是一个可怕的类名。

最佳答案

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

<%= f.fields_for [...]

代替 :
<% f.fields_for

form_for也是如此

关于ruby-on-rails-3 - 具有has_one关联的嵌套属性的表单在Rails 3中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4087742/

10-12 12:53
查看更多