I miei modelli:accepts_nested_attributes_for solleva ActiveRecord :: InvalidForeignKey: PG :: ForeignKeyViolation: ERRORE
class Foo < ActiveRecord::Base
has_many :bars, inverse_of: :foo
accepts_nested_attributes_for :bars
...
end
class Bar < ActiveRecord::Base
belongs_to :foo, inverse_of: :bars
...
end
Quando cerco di creare record in questo modo:
Foo.create(foo_attribute: value, bars_attirbutes: [{bar_attribute: value}])
ottengo:
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: insert or update on table "bars" violates foreign key constraint "bars_foo_id_fkey"
DETAIL: Key (foo_id)=(14) is not present in table "foos".
Quindi suppongo che ActiveRecord stia cercando di salvare il modello annidato prima che il modello padre venga salvato e quindi l'erro r. Ma perché sta facendo questo? Come posso impedirgli di farlo?