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

时间:2011-10-10 13:39:09

标签: ruby-on-rails-3 carrierwave

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

从上传器中访问模型的属性,如下所示:

version :thumb do
    thumbnail_size = model.thumbnail_size
    ...
    ...
end

我收到以下错误:

  

未定义的局部变量或#

的方法`model'

谢谢! 弗洛里安

1 个答案:

答案 0 :(得分: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