11
그래서 저는 레일스 초보자이며 꽤 일반적인 문제가 될 수 있다고 생각합니다.하지만 여기에서 답을 찾을 수 없습니다. 푸 belongs_to레코드를 저장하기 전에 연관을 생성하십시오.
class Foo < ActiveRecord::Base
has_many :bars
end
바, 작동 모든 :
은 내가 이런 모델 Foo
있습니다. 이제 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
같은 문제에 빠져 마지막 옵션 (f = Foo.new)에서 Bar 모델 (내 코드에서)에서': foo_id, remove : presence => true'를 제거해야한다는 것을 깨달았습니다. – migu