Parent Child - Transaction Issue

Hi guys,

I was trying to create a record in both the parent and child tables (1
to 1
relationship). By default when you call parent.save it’s not invoked in
a
transaction mode, and I’m trying to avoid parent record is created
without
the child record (due to validation error in child).

I wanted to save both parent and child in transaction mode:

parent = Parent.new
child = parent.build_child

Parent.transaction do
parent.save! # parent created, child validation check failed but
no exception thrown
child.save! # exception triggered for validation error, transaction
rolled back
end

The problem is because parent was initially successfully created,
paret.new_record? returns true, even though it was rolled back later on,
so
subsequent attempt to save will not insert the parent record.

Am I missing something here? Please help to shed some lights? Thanks!

Regards,

Herry

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs