我有一个用户模型,其中有很多实验:
class User < ActiveRecord::Base
has_many :experiments, :dependent => :destroy
和实验模型:
class Experiment < ActiveRecord::Base
belongs_to :user
has_attached_file :thumbnail
我想在所有者用户被销毁之后在实验模型中挂钩以获取销毁时刻。 (前用户取消他的帐户)
我需要删除实验模型的附件图像,该图像存储在亚马逊中。比如experiment.thumbnail.destroy
推荐的方法是什么?
修改
虽然我已经销毁了没有错误的缩略图,但是,文件仍然没有删除!我仍然可以在亚马逊桶中看到它
class Experiment < ActiveRecord::Base
before_destroy :remove_attachment
def remove_attachment
self.thumbnail.destroy
puts self.errors.full_messages.join("\n")
true
end
在我销毁实验后,调用remove_attachment,但errors.full_messages为空!所以没有错误,但是,仍然没有删除文件
任何想法??
答案 0 :(得分:4)
我想在实验模型之后勾解破坏时刻 所有者用户被破坏。
has_many :experiments, :dependent => :destroy
已经这样做了。
要删除附件,我建议使用回调
class Experiment < ActiveRecord::Base
before_destroy { |experiment| experiment.thumbnail.destroy }
end
答案 1 :(得分:0)
我认为您正在寻找callback之类的:
before_destroy :delete_attachment_image