1

コントローラー経由でオブジェクトを作成しています。Aには sFooがたくさんありBarます。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、データベースに存在しないため、ActiveRecord はそれを nil と見なし、それが保存されない理由ですか? どうすればこれを正しく書くことができますか?

4

3 に答える 3