# use reflection to look up the appropriate class
model = Kernel.const_get(m[0].capitalize)
- # get the element with that ID
- element = model.find_by(:id => m[1])
+ # get the element with that ID. and, if found, lock the element to
+ # ensure it can't be deleted until after the current transaction
+ # commits.
+ element = model.lock("for share").find_by(:id => m[1])
# and check that it is OK to use.
unless element && element.visible? && element.preconditions_ok?