+ def destroy_with_resource_picture
+ res = false
+ OriginalPicture.transaction do
+ begin
+ PictureIO.original_picture_io.delete(self.filename) if PictureIO.original_picture_io.exist?(self.filename)
+ rescue PictureIO::Error
+ res = false
+ raise ActiveRecord::Rollback
+ end
+ if self.resource_picture
+ res = self.resource_picture.unpublish
+ raise ActiveRecord::Rollback unless res
+ end
+ self.pictures.each do |picture|
+ res = picture.unpublish
+ raise ActiveRecord::Rollback unless res
+ end
+ res = self.destroy
+ raise ActiveRecord::Rollback unless res
+ end
+ res
+ end
+