プロフィール写真など、ユーザーが保存したS3からファイルを削除する必要があります。ちょうど@user.logo.destroy
を呼び出すことはそのトリックをしていないようです - 私はログに[paperclip] Saving attachments.
を得て、そのファイルはS3バケットのすぐそこにとどまります。Paperclip - Amazon S3からファイルを削除しますか?
ファイル自体はどのように削除できますか?
プロフィール写真など、ユーザーが保存したS3からファイルを削除する必要があります。ちょうど@user.logo.destroy
を呼び出すことはそのトリックをしていないようです - 私はログに[paperclip] Saving attachments.
を得て、そのファイルはS3バケットのすぐそこにとどまります。Paperclip - Amazon S3からファイルを削除しますか?
ファイル自体はどのように削除できますか?
これは、添付ファイルを削除するために使用することができペーパークリップからのメソッドです:
module Paperclip
class Attachment
# Clears out the attachment. Has the same effect as previously assigning
# nil to the attachment. Does NOT save. If you wish to clear AND save,
# use #destroy.
def clear
queue_existing_for_delete
@errors = {}
end
# Destroys the attachment. Has the same effect as previously assigning
# nil to the attachment *and saving*. This is permanent. If you wish to
# wipe out the existing attachment but not save, use #clear.
def destroy
clear
save
end
ですから、参照エラーが発生していない場合のみ、添付ファイルを削除し破壊します。私はS3に対して自分自身のセットアップでそれを試したので、破壊の仕組みが分かっています。
あなたの場合の問題は、保存をキャンセルする検証がある可能性がありますか?私はvalidates_attachment_presenceか何か類似していますか?
@ user.logo.destroyを試して、@ user.errorsの内容をチェックしてエラーメッセージが報告されているかどうかを調べる方法があると思います。
私は完全に破壊するとクリアとの間にその違いを理解していないが、これは、あなたの質問への答えのように思える(私は知らないどのモデルhas_attached_file、ページや画像):
ここに記載されているように、ここで私の質問をご覧ください。http://stackoverflow.com/questions/14144454/how-to-hook-for-destroy-of-a-model-that-belongs-別のモデル – simo