删除原始附件但使用Paperclip保留缩略图

时间:2012-03-07 20:16:27

标签: ruby-on-rails

Paperclip中是否有配置设置将原始图像缩小到一定大小而不是创建另一个版本的文件?

如果用户上传了750X750图像,我想将其缩小到500x500。我永远不会使用750x750版本,因此没有理由保留它。

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :thumb => "500x500>" }
end

2 个答案:

答案 0 :(得分:7)

有一种简单的方法可以覆盖它。您所要做的就是将您的风格设置为原始风格:

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :original => "500x500>" }
end

它不会保存原件并采取任何输入图像并根据您的规格进行修改。然后,当您想要访问它时,您不需要指定样式。

image_tag @user.avatar

而不是:

image_tag @user.avatar(:thumbnail)

答案 1 :(得分:0)

它可能不是最漂亮的解决方案,但这可行。我很想知道是否有更好的解决方案。

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :original => "500x500>" }
  after_create :delete_original_image

  def delete_original_image
    File.delete(self.avatar.path)
  end
end