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