私は、私のレールアプリでAWSでPaperclipを使用しています。私は画像を保持しているモデルがあります:破損時にS3から画像を削除しないペーパークリップ
class PaperclipFile < ActiveRecord::Base
before_validation :parse_image
belongs_to :attachment
attr_accessor :base64_attachment
has_attached_file :image, preserve_files: false
validates_attachment :image, presence: true
do_not_validate_attachment_file_type :image
private
def parse_image
return unless base64_attachment
image = Paperclip.io_adapters.for(base64_attachment)
image.original_filename = "img_#{SecureRandom.urlsafe_base64}.jpg"
end
end
を基本的に私はBASE64で画像を渡すことができ、それが処理してS3に正しく、それを格納します。私はそのレコードをDBからなくなっていますが、ファイルがバケツから破壊されない後
p = PaperclipFile.first
p.destroy
を.destroyないときの問題があります。私は何の誤りもないので、それはまったく試みているようには見えません。
出力は次のようになります。
# Attachments
gem 'paperclip'
gem 'aws-sdk', '~> 2.3'
ありがとう:私はルビー2.4、Railsの5.0.2を使用して、彼らはこのように見える宝石用として記録するために
2.4.0 :005 > PaperclipFile.first.destroy
PaperclipFile Load (0.8ms) SELECT "paperclip_files".* FROM "paperclip_files" ORDER BY "paperclip_files"."id" ASC LIMIT $1 [["LIMIT", 1]]
(0.2ms) BEGIN
SQL (0.7ms) DELETE FROM "paperclip_files" WHERE "paperclip_files"."id" = $1 [["id", 2]]
(4.1ms) COMMIT
=> #<PaperclipFile id: 2, attachment_id: 2, created_at: "2017-04-03 04:02:11", updated_at: "2017-04-03 04:02:11", image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil>
2.4.0 :006 >
!
クリアはpの関数ではありません。多分あなたはp.image.clear/p.image.destroyを意味しましたか?私も幸運のない人を試してみました – mrk
p.image.destroy/p.image.clearを実行した後にオブジェクトを保存しようとしました –
あなたの提案に感謝しますが、これまでのところ喜んでいません – mrk