我想使用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 %>
..在复制并查看之后,这是一个可怕的班级名称。
答案 0 :(得分:12)
在rails 3中你应该使用(注意<%=
中的等号):
<%= f.fields_for [...]
而不是:
<% f.fields_for
与form_for
相同