故障fields_for rails中的方法用于多模型表单

时间:2012-09-24 02:30:45

标签: ruby-on-rails-3 forms

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

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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我想     &lt;%f.fields_for:po_recommits do | builder | %GT; 应该     &lt;%= f.fields_for:po_recommits do | builder | %GT;