Правильно ли создавать экземпляры вложенных fields_for без отображения старых сохраненных объектов? - PullRequest
0 голосов
/ 26 октября 2010

У меня есть вложенная форма, которая создается следующим образом:

- 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

Как мне сделать так, чтобы это прошло правильно (как это происходит в первом примере)?

1 Ответ

1 голос
/ 26 октября 2010

Попробуйте это:

модель

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 %>
...