通过cloudinary gem为carrierwave上传的图片添加标签

时间:2013-06-08 08:11:12

标签: image file-upload ruby-on-rails-3.2 carrierwave cloudinary

在我的rails应用程序中,我正在尝试为上传到云端云的图像添加标签。

在我的carrierwave中,ImageUploader类

include Cloudinary::CarrierWave

 # def cache_dir
 #   "#{Rails.root}/tmp/uploads"
 # end
 # 

process :convert => 'jpg'
cloudinary_transformation :quality => 80
process :tags => [ 'tag', model.name]

...

我正在尝试在标记中添加记录的名称,但它会出错

method 'model' is undefined for class ImageUploader.

如何在我的上传器中访问字段name的值。

我是铁杆新手。

请提前帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

class PictureUploader < CarrierWave::Uploader::Base  
  include Cloudinary::CarrierWave

  process :convert => 'jpg'
  cloudinary_transformation 
  :quality => 80
  process :assign_tags

  def assign_tags      
    return :tags => ['tag', model.name]      
  end
end

您可以定义任何返回参数哈希的方法。然后,您可以使用“进程”调用应用自定义方法。参数将传递给上传API调用。