Why not stick booking_driver.save into a

after :create do |booking|
    booking_driver = BookinDriver.new :booking => booking.id (or just
booking? Not sure)
    booking_driver.save
end

in class booking, it also seems (from what you've typed) you're not
saving booking?

On Jun 25, 7:10 pm, Juan <[email protected]> wrote:
>  I've the following model, a Booking and a BookingDriver that is created when 
> the booking
>  has a driver information.
>
>   class Booking
>      include DataMapper::Resource
>
>      property :id, Serial
>
>   end
>
>   class BookingDriver
>
>      belongs_to :booking, :key => true, :parent_key => [:id], :childkey => 
> [:id]
>
>   end
>
>   and DataMapper::Model.raise_on_save_failure = true
>
>   In the BookingDriver unit testing I'm doing the following :
>
>     booking = Booking.new
>     booking_driver = BookinDriver.new :booking => booking
>
>     booking_driver.save
>
>   When I do this, both the booking and the booking driving are saved, but if 
> an error is produced
>  due to others properties, because both have more properties, then the 
> booking is created and the
> booking_driver is not. I can see the INSERT opertation in the log.
>
>  Question 1 : Why is the booking_driver fails the booking remains saved
>
>   I also tried to use transactions
>
>      BookingDriver.transaction do
>        booking_driver.save
>      end
>
>   In this case, the INSERT is rolled back, but the booking.saved? returns 
> true.
>
>   Question 2: Why it returns true if it's really not saved?
>
>   Question 3: Is correct to define only one side of the relationship. In this 
> case I do not want
>  the Booking knows about the booking driver, because I probably use the 
> booking for other
>  types of booking.
>
> Thank you
>
> Juan

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.

Reply via email to