Forum: Ruby on Rails deleting model using optimistic locking results in ActiveRecord::StaleObjectError

Posted by Cathal O'Riordan (coriordan)
on 2013-01-10 17:30
(Received via mailing list)
Hi,

I have a model defined like so:

class Course < ActiveRecord::Base
  has_many :attendances, :dependent => :destroy
  has_many :attendees, :through => :attendances, :source => :user

...

when I attempt to delete a Course model, it results in an
ActiveRecord::StaleObjectError. Reviewing the resulting SQL calls shows
that the 'lock_version' column gets incremented on each dependent
'Attendance' model that is deleted. When the Course model is deleted, 
its
lock_version no longer matches the persisted row in the database, and 
hence
the StaleObjectError. Any help on how to handle this situation would be
greatly appreciated.

regards,
Cathal.
Posted by Cathal O'Riordan (coriordan)
on 2013-01-11 11:29
(Received via mailing list)
The only workaround to this I've been able to find is to use :dependent 
=>
:delete_all. This performs a general delete of related objects and 
doesn't
update the lock_version on the parent.

Cathal.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.