如何丢弃原始图像文件并使用Paperclip和Rails 3保留调整大小?

时间:2010-10-25 21:40:37

标签: ruby-on-rails paperclip rmagick

我正在使用Paperclip来允许注册用户上传头像以便在他们的个人资料上使用。我想存储一个大小版本的图像,它将被标记为标准尺寸。现在,我想要做的是存储这两个标准尺寸(例如:normal和:tiny),但我不想存储:original。

由于几个原因,这将是很好的,因为我永远不会显示或使用任何版本而不是两个标准(重新)尺寸。

2 个答案:

答案 0 :(得分:1)

我无法想到使用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

答案 1 :(得分:1)

您想要删除文件的理由是什么?文件存储现在非常便宜,它不再是一个有效的理由。

我建议不要删除原始文件。如果您决定使用Paperclip的rake任务调整文件大小,则需要原件。