0

不知道我在这里做错了什么。但我正在尝试创建一个包含多个模型的表单。我已经阅读了它,它看起来很简单,但是我无法让子模型的字段在表单上呈现。据我了解解决方案,我必须将以下内容放入模型中

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 次。

我错过了什么?

4

1 回答 1

1

我认为 <% f.fields_for :po_recommits 做 |builder| %> 应该是 <%= f.fields_for :po_recommits do |builder| %>

于 2012-09-24T02:44:41.597 回答