كيف يمكنني التخلص من ملف الصورة الأصلي وأحتفظ بالتغييرات باستخدام Paperclip و Rails 3؟

StackOverflow https://stackoverflow.com/questions/4019112

سؤال

أنا أستخدم paperclip ، من بين أشياء أخرى ، السماح للمستخدم المسجل بتحميل الصورة الرمزية لاستخدامها في ملف التعريف. أرغب في تخزين نسخة كبيرة وصغيرة من الصورة والتي سيتم صيدها إلى أحجام قياسية. الآن ، ما أريد القيام به ، هو تخزين هذين الحجمين القياسيين (: عادي و: صغير ، على سبيل المثال.) لكنني لا أريد تخزين: الأصلي.

سيكون هذا لطيفًا لعدة أسباب لأنني لن أعرض أو أستخدم أي إصدار أكثر من أحجام اثنين (إعادة).

هل كانت مفيدة؟

المحلول

ما هو منطقك عن الرغبة في حذف الملفات؟ تخزين الملفات رخيص جدًا الآن ، بحيث لم يعد سببًا صحيحًا حقًا.

أود أن أنصح بعدم حذف الملفات الأصلية. إذا قررت يومًا أنك تريد تغيير حجم الملفات باستخدام مهام Rake Paperclip ، فستحتاج إلى النسخ الأصلية.

نصائح أخرى

لا أستطيع التفكير في طريقة للقيام بذلك باستخدام Paperclip مباشرة ، ولكن يمكنك إزالة الأصل يدويًا بعد إنشاء السجل. مثال يمكن أن يبدو هكذا:

class Photo
  has_attached_file :photo

  after_create :destroy_original

  protected

    def destroy_original
      # photo.url will look something like /system/photos/1/original.png
      File.unlink("#{Rails.root}/public#{self.photo.url}")
    end

end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top