使用paperclip时无法访问before_destroy中的附加文件数据

时间:2011-07-05 05:36:15

标签: ruby-on-rails url paperclip

我试图在实际删除对象之前删除一些东西。 (我正在使用回形针) 所以我认为before_destroy是我的解决方案。 我不想使用依赖性破坏。 (某些原因) 我有这样的模型:

class Picture < ActiveRecord::Base
belongs_to :user
has_attached_file :image, :styles => {:d800x2400 =>"800x2400>",:d220x150=>"220x150#",:d118x118 => "118x118#",:d60x60=>"60x60#"}
before_destroy :remove_extras
after_save : add_extras

private 
def add_extras
logger.info " adding extras "
puts image.url(:d60x60)
end
def remove_extras
logger.info " Removing extras "
puts image.url(:d60x60)
end

现在我得到的输出是(在添加&amp;然后删除时):

 adding extras 
/system/images/186/d60x60/something.png
deleting extras
/system/images/d60x60/missing.png

有人可以告诉我为什么我无法获得正确的网址吗?

1 个答案:

答案 0 :(得分:3)

你可能已经有了答案,但如果你没有:

问题是你需要在“has_attached_file”部分之前来“before_destroy”...否则,首先调用Paperclip自己的“before_destroy”并在调用方法之前杀死图像...

我自己就是遇到了这个问题,并且修改了声明的顺序。