未定义的方法操作! - 带有 minimagick 的载波
Undefined method manipulate! - carrierwave with minimagick
我正在使用 carrierwave 和 minimagick 上传图像并将其裁剪成正方形。但是我收到以下错误:
undefined method 'manipulate!' for #<Class:0x692db10>
这似乎没有意义,因为我包含了正确的 class,并且该部分工作正常。这是我当前的上传者 class.
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
版本。有谁知道哪里出了问题?
似乎 manipulate!
属于 RMagick
adapter, for MiniMagick 你应该使用像 mogrify
.
这样的东西
确实有这样的方法,但你试图在 class 范围内使用它,而它是一个实例方法。有一个 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
我正在使用 carrierwave 和 minimagick 上传图像并将其裁剪成正方形。但是我收到以下错误:
undefined method 'manipulate!' for #<Class:0x692db10>
这似乎没有意义,因为我包含了正确的 class,并且该部分工作正常。这是我当前的上传者 class.
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
版本。有谁知道哪里出了问题?
似乎 manipulate!
属于 RMagick
adapter, for MiniMagick 你应该使用像 mogrify
.
确实有这样的方法,但你试图在 class 范围内使用它,而它是一个实例方法。有一个 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