我正在通过控制器创建一个对象。AFoo
有很多Bar
s。该Bar
模型有一个验证,它必须有一个Foo
才能有效。
在foo.rb
模型中:
has_many: bars
在bar.rb
模型中:
validates_presence_of :foo
belongs_to: foo
在foo_controller.rb
:
@foo = Booking.new(params[:foo]) # this has all the params needed to make a Foo.
@foo.create_bars(params[:bars])
在foo.rb
模型中:
def create_bars(bars)
bars.each do |t|
bar = Bar.create({name: name, email: email, foo: foo})
bar.foo = self
self.bars << bar
bar.save
puts self.bars.to_s
end
end
这puts self.bars.to_s
这听起来应该是非常基本的东西,但由于foo
db 中不存在,ActiveRecord 是否认为它为零,这就是它不保存的原因?我怎样才能正确地写这个?