Итак, я, по общему признанию, новичок Rails, и я сталкиваюсь с тем, что должно быть довольно распространенной проблемой, но я не могу найти ответ здесь.
У меня есть модель Foo
, как это:
class Foo < ActiveRecord::Base
has_many :bars
end
Бары принадлежат_Foo, все это работает. Теперь я хочу создать панель Foo и build одновременно. Вот так:
f = Foo.new(:baz => 'baz')
bars.each do |b|
f.bars.build(:bizzy => b[:bizzy])
end
f.save
Я знаю, что это не сработает, потому что родительская запись не существует, поэтому ассоциация не существует, но должен быть способ сделать это. Я временно обошел его, отредактировав это:
f = Foo.new(:baz => 'baz')
f.save
f = Foo.find(:first, :conditions => {:baz => 'baz'})
bars.each do |b|
f.bars.create(:bizzy => b[:bizzy])
end
Но это не чисто, и все вокруг неприятно.
Каков правильный способ сделать это?