Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Carrierwave+;重新分页选项不起作用_Ruby On Rails_Imagemagick_Ruby On Rails 4_Carrierwave_Minimagick - Fatal编程技术网

Ruby on rails Carrierwave+;重新分页选项不起作用

Ruby on rails Carrierwave+;重新分页选项不起作用,ruby-on-rails,imagemagick,ruby-on-rails-4,carrierwave,minimagick,Ruby On Rails,Imagemagick,Ruby On Rails 4,Carrierwave,Minimagick,在我的Carrerwave自定义处理方法中,我尝试使用+repage选项。文档有点难理解,但我发现我需要运行img.repage.+。然而,这并没有起作用,因为它甚至没有尝试将选项转换为+,而是将其保留在-repage上,并抛出了一个错误。然后我找到了一页插图,上面写着: img.push '+repage' img.+ img.repage 它使用了一个不同的示例(不是使用repage,而是使用带有两个参数的“+profile”。无论哪种方式,它都不起作用……它现在告诉我nil:NilCla

在我的Carrerwave自定义处理方法中,我尝试使用
+repage
选项。文档有点难理解,但我发现我需要运行
img.repage.+
。然而,这并没有起作用,因为它甚至没有尝试将选项转换为+,而是将其保留在
-repage
上,并抛出了一个错误。然后我找到了一页插图,上面写着:

img.push '+repage'
img.+
img.repage
它使用了一个不同的示例(不是使用repage,而是使用带有两个参数的“+profile”。无论哪种方式,它都不起作用……它现在告诉我nil:NilClass的未定义方法“gsub”,并指向
img.+

这是我的方法:

def custom_thumbnail
    manipulate! do |img|
        img.distort :srt, -30
        img.repage.+
        img.crop "#{model.crop_w}x#{model.crop_h}+#{model.crop_x}+#{model.crop_y}"
        img
    end
end
还有谁有这方面的运气吗

编辑-完整堆栈跟踪直到控制器以及更新的方法:

def custom_thumbnail
    manipulate! do |img|
        img.distort :srt, -30
        img.push '+repage'
        img.+
        img.repage
        img.crop "#{model.crop_w}x#{model.crop_h}+#{model.crop_x}+#{model.crop_y}"
        img.resize "150x150"
        img
    end
end

mini_magick (3.6.0) lib/mini_magick.rb:486:in `+'
mini_magick (3.6.0) lib/mini_magick.rb:343:in `block in method_missing'
mini_magick (3.6.0) lib/mini_magick.rb:361:in `call'
mini_magick (3.6.0) lib/mini_magick.rb:361:in `combine_options'
mini_magick (3.6.0) lib/mini_magick.rb:342:in `method_missing'
app/uploaders/wine_photo_uploader.rb:67:in `block in custom_thumbnail'
carrierwave (0.9.0) lib/carrierwave/processing/mini_magick.rb:262:in `manipulate!'
app/uploaders/wine_photo_uploader.rb:64:in `custom_thumbnail'
carrierwave (0.9.0) lib/carrierwave/uploader/processing.rb:85:in `block in process!'
carrierwave (0.9.0) lib/carrierwave/uploader/processing.rb:81:in `each'
carrierwave (0.9.0) lib/carrierwave/uploader/processing.rb:81:in `process!'
carrierwave (0.9.0) lib/carrierwave/uploader/callbacks.rb:18:in `block in with_callbacks'
carrierwave (0.9.0) lib/carrierwave/uploader/callbacks.rb:18:in `each'
carrierwave (0.9.0) lib/carrierwave/uploader/callbacks.rb:18:in `with_callbacks'
carrierwave (0.9.0) lib/carrierwave/uploader/cache.rb:122:in `cache!'
carrierwave (0.9.0) lib/carrierwave/uploader/store.rb:56:in `store!'
activesupport (4.0.0) lib/active_support/core_ext/object/try.rb:45:in `public_send'
activesupport (4.0.0) lib/active_support/core_ext/object/try.rb:45:in `try'
carrierwave (0.9.0) lib/carrierwave/uploader/versions.rb:281:in `block in store_versions!'
carrierwave (0.9.0) lib/carrierwave/uploader/versions.rb:281:in `each'
carrierwave (0.9.0) lib/carrierwave/uploader/versions.rb:281:in `store_versions!'
app/uploaders/wine_photo_uploader.rb:101:in `block in recreate_versions!'
app/uploaders/wine_photo_uploader.rb:98:in `each'
app/uploaders/wine_photo_uploader.rb:98:in `recreate_versions!'
app/controllers/wines_controller.rb:78:in `update'
最终解决方案!

显然,这是正确的方法:

def custom_thumbnail
    manipulate! do |img|
        img.distort :srt, -30
        img.combine_options do |c|
            c.repage.+
            c.gravity :center
            c.crop "#{model.crop_w}x#{model.crop_h}+#{model.crop_x}+#{model.crop_y}"
            c.repage.+
        end
        img.resize "150x150"
        img
    end
end
阅读时,我希望
img.push'+repage'
img.repage.+
能够正常工作。后者似乎就是api。跟踪是否与原始自定义缩略图方法相同

另见:


你能发布一个堆栈跟踪吗?仔细阅读,我看到他们把它放在了combine|u选项中,这就是我需要做的,让它工作。在尝试设置重力时也发生了同样的问题。所以它不是“img”,而是img.combine|u选项做| c | c.repage.+结束。谢谢!