11
所以,我承認Rails新手,我遇到了一個相當普遍的問題,但我在這裏找不到答案。在記錄保存之前創建關聯
我有這樣一個模型Foo
:
class Foo < ActiveRecord::Base
has_many :bars
end
酒吧belongs_to的富,所有的作品。現在我想創建一個Foo並同時創建Bar。就像這樣:
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
但是,這並不乾淨,並且都是不愉快的。
這樣做的正確方法是什麼?
嗯,我可以發誓這是不可能的。你是對的,但是在我再次測試之後,它就像魅力一樣。謝謝! – Eugene 2012-04-10 13:58:21
出現同樣的問題,並意識到對於最後一個選項(f = Foo.new),我必須在Bar模型(在我自己的代碼中)刪除':foo_id,remove:presence => true'。 – migu 2013-12-06 09:18:02