OSDN Git Service

t30350#:fix destroy
[pettanr/pettanr.git] / app / models / resource_picture.rb
index c8bd3f7..757140a 100644 (file)
@@ -205,13 +205,20 @@ class ResourcePicture < ActiveRecord::Base
   end
   
   def unpublish
-    r = true
+    res = false
     ResourcePicture.transaction do
-      self.destroy
-      PictureIO.resource_picture_io.delete(self.filename)
-      PictureIO.resource_picture_io.delete(self.filename, 'full')
+      begin
+        if res = self.destroy
+          PictureIO.resource_picture_io.delete(self.filename)
+          PictureIO.resource_picture_io.delete(self.filename, 'full')
+          res = true
+        end
+      rescue PictureIO::Error
+        res = false
+        raise ActiveRecord::Rollback
+      end
     end
-    r
+    res
   end
   
   def self.visible_count