4

has_many の実験を行う User モデルがあります。

class User < ActiveRecord::Base

has_many :experiments, :dependent => :destroy

および実験モデル:

class Experiment < ActiveRecord::Base

belongs_to :user
has_attached_file :thumbnail

所有者のユーザーが破壊された後、実験モデルで破壊の瞬間をフックしたい。(元ユーザーがアカウントをキャンセル)

Amazonに保存されている実験モデルの添付画像を削除する必要があります。お気に入りexperiment.thumbnail.destroy

これを達成するための推奨される方法は何ですか?

編集

エラーなしでサムネイルを破棄しましたが、ファイルはまだ削除されていません! Amazonバケットでまだ見ることができます

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 は空です! エラーはありませんが、それでもファイルはバックで削除されません

何か案が ??

4

2 に答える 2

4

所有者のユーザーが破壊された後、実験モデルで破壊の瞬間をフックしたい。

has_many :experiments, :dependent => :destroy

すでにそうしています。

添付ファイルを削除するには、コールバックを使用することをお勧めします

class Experiment < ActiveRecord::Base

    before_destroy { |experiment| experiment.thumbnail.destroy }
end
于 2013-01-03T18:04:04.970 に答える
0

次のようなコールバックを探していると思います:

before_destroy :delete_attachment_image

于 2013-01-03T18:00:16.183 に答える