我正在使用带有minimagick的carrierwave上传图像并将其裁剪为正方形。但是我收到以下错误:
undefined method 'manipulate!' for #<Class:0x692db10>
它似乎毫无意义,因为我已经包含了正确的类,并且该部分工作正常。这是我目前的上传者课程。
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
@@sizes = {
"2000" => 2048,
"1500" => 1500,
"1000" => 1024,
"500" => 512,
"250" => 256,
"100" => 128
}
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :square do
manipulate! do |img|
size = img.dimensions.min
end
process resize_to_fill: [size, size]
end
end
很明显,我们正在讨论:square
版本。有谁知道可能出现什么问题?
答案 0 :(得分:0)
似乎manipulate!
属于RMagick
adapter,对于MiniMagick,您应使用mogrify
之类的内容。
确实,有这样的方法,但是你试图在类范围内使用它,而它是一个实例方法。您可以使用bunch of useful class methods。
如果您仍然需要manipulate!
,请执行以下操作:
process :radial_blur => 10
def radial_blur(amount)
manipulate! do |img|
img.radial_blur(amount)
img = yield(img) if block_given?
img
end
end