On Thu, 16 Oct 2014 19:58:52 +0100 Colin Law <[email protected]> wrote:
> On 15 October 2014 22:01, Brian Sammon > <[email protected]> wrote: > > All my tables/models have a "revision" field, and I have a > > before_update callback to increment the revision field. > > > > Among my tables are: > > events > > rooms > > events_rooms > > > > In my Event model, I have: > > has_many :eventRooms > > has_many(:rooms, :through => :eventRooms) > > > > When I create an event, assign a room or two, and then save, the > > "events_rooms" table entry is initially created with a revision of 1, > > and then (immediately, automatically, and inexplicably) updated to hav > > a revision of 2. I do not want every new record to have a revision > > number of 2. The revision 2 version is identical to revision 1 (which > > it replaces), aside from the revision number. > > > > I can reproduce this in the rails console with the following: > > event = Event.new({'name' => 'Meeting 5'}) > > event.rooms << Room.find(['1', '2']) > > event.save > > > > Does anyone have any idea why this could be happening or where I shoul > > look for further troubleshooting? > > Just to be clear you are saying that the above code invokes > before_update once where you would not expect it to be called at all? > If so is it invoked by the save or does it get called when the room is > added? > > Does it save it twice? it does a sql INSERT followed by a sql UPDATE (both) after "event.save". -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/20141016151405.a39b45767754d32af364e563%40brisammon.fastmail.fm. For more options, visit https://groups.google.com/d/optout.

