我在 Ruby on Rails 应用程序中使用 Shrine 来创建调整大小并将图像上传到存储的过程。
我目前的代码是:
image_uploader.rb
require "image_processing/mini_magick"
class ImageUploader < Shrine
plugin :derivatives
Attacher.derivatives_processor do |original|
magick = ImageProcessing::MiniMagick.source(original)
{
resized: magick.resize_to_limit!(120, 120)
}
end
end
用户.rb
class User < ApplicationRecord
include ImageUploader::Attachment(:image)
before_save :image_resize
def image_resize
self.image_derivatives!
end
end
我在阅读官方文档时实现了它,但这在两个方面是不可取的。
- 需要在模型代码中触发。可以只用完成
image_uploader.rb
吗? - 访问使用此代码生成的图像需要“调整大小”前缀(例如
@user.image(:resized).url
),并且原始图像也将保留在存储中。我想自己处理原始图像。
有没有办法在解决这两个问题的同时上传?