我有一个嵌套的表单,实例化为:
- 2.times { @organization.referrals.build }
- form_for @organization do |f|
= f.error_messages
- f.fields_for :referrals do |f|
除此之外,嵌套表单应该始终是新的且唯一的。此表单也显示以前创建的对象。
所以我试着这么写..
- 2.times { @organization.referrals.build }
- form_for @organization do |f|
= f.error_messages
- f.fields_for @organization.referrals.select{|r| r.new_record? } do |f|
但是现在我没有看到2个空白表单,我无法保存我的对象,因为它试图通过Organization.referral
(这不是方法)而不是Organization.referrals
。
问题1
如何创建2个空白表单?
问题2
如何正确传递(如第一个示例中所示)?
答案 0 :(得分:1)
试试这个:
class Organization < ActiveRecord::Base
has_many :referrals
accepts_nested_attributes_for :referrals
end
<%= form_for @organization do |f| %>
<% 2.times do |i| %>
<%= f.fields_for :referrals, @organization.referrals.build, :index => i do |rf| %>
<%= rf.text_field :some_referral_attribute %>
<% end %>
<% end %>
<% end %>