lightsaber
lightsaber

Reputation: 1481

Add tags to images uploaded by carrierwave via cloudinary gem

In my rails app I'm trying to add tags to images uploaded to cloudinary cloud.

in my carrierwave, ImageUploader class

include Cloudinary::CarrierWave

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

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

...

I'm trying to add name of the record in tags, but it gives error

method 'model' is undefined for class ImageUploader.

how can I access value of the field name inside my uploader.

I'm new to rails.

please help, thanks in advance!

Upvotes: 0

Views: 470

Answers (1)

Itay Taragano
Itay Taragano

Reputation: 1931

You can use the following:

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

You can define any method that returns a hash of parameters. Then you can apply the custom method using the 'process' call. The parameters are passed to the upload API call.

Upvotes: 3

Related Questions