不确定我在这里做错了什么。但我正在尝试创建一个包含多个模型的表单。我已经阅读了它并且看起来很简单,但我无法在表单上呈现子模型的字段。据我了解解决方案,我必须将以下内容放入模型中
class Message < ActiveRecord::Base
#parent model
attr_accessible :duns, :ord
has_many :po_recommits
accepts_nested_attributes_for :po_recommits
end
class PoRecommit < ActiveRecord::Base
#child model
attr_accessible :comment, :detail_reason_code, :pid, :po, :qty,
belongs_to :message, :dependent => :destroy
end
并将以下内容放入父控制器以创建占位符
def new
@message = Message.new
5.times { @message.po_recommits.build }
end
最后将fields_for助手添加到视图
<%= form_for @message do |f| %>
<%= f.label :org %><%= f.text_field :org %>
<% f.fields_for :po_recommits do |builder| %>
<%= builder.label :po %><%= builder.text_field :po %>
<% end %>
<%= f.submit %>
<% end %>
此代码不会抛出任何错误,但不会在表单上呈现:po
字段。我认为这是因为该块正在执行0次。
我错过了什么?
答案 0 :(得分:1)
我想 &lt;%f.fields_for:po_recommits do | builder | %GT; 应该 &lt;%= f.fields_for:po_recommits do | builder | %GT;