将参数传递给上传器/从上传器中访问模型的属性/让用户选择缩略图大小

Flo*_*ian 2 ruby-on-rails-3 carrierwave

我想将图像裁剪为用户从列表中选择的大小(例如100x100px,200x200px,...)如何将该属性传递给上传器或从上传器中获取模型的属性?

从上传器中访问模型的属性如下所示不起作用:

version :thumb do
    thumbnail_size = model.thumbnail_size
    ...
    ...
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未定义的局部变量或方法`model'for#

谢谢!弗洛里安

Flo*_*ian 7

为了能够访问模型的属性,我必须添加一个操作助手.

class MyUploader < CarrierWave::Uploader::Base
  ...

  version :thumb do
    process :custom_thumbnail
    process :convert => 'jpg'
    ...
  end

  def custom_thumbnail
      width =  model.get_image_width     
      height = model.get_image_height

      manipulate! do |img|
        img.convert "#{width}x#{height}"
        img
      end
  end
end
Run Code Online (Sandbox Code Playgroud)