注:この質問は、accepts_nested_attributes_for の使用に関して私が持っていた別の質問から生まれました。必要に応じて、追加のコンテキストについてその質問を参照できます。
この質問は、簡単な例で最もよく説明できると思います。
class Foo < ActiveRecord::Base
has_many :bars, inverse_of: :foo
end
class Bar < ActiveRecord::Base
validates :foo_id, presence: true
belongs_to :foo, inverse_of: :bars
end
f = Foo.new()
=> #<Foo id: nil, created_at: nil, updated_at: nil>
b = f.bars.build()
=> #<Bar id: nil, foo_id: nil, created_at: nil, updated_at: nil>
f.save!
=> ActiveRecord::RecordInvalid: Validation failed: Bars foo can't be blank
この問題を解決する簡単な方法はありますか? f
最初に保存してからビルドできることはわかっていますb
が、私の状況はこの例よりも少し複雑で (上記の質問を参照してください)、可能であればそれを避けたいと思います。