I am getting this error when trying to upload a picture "Need to implement #cache! if you want to use Cloudinary::CarrierWave::Storage as a cache storage." It highlights this part of code in my controller:
def update
@company.update(company_params)
redirect_to company_path(@company)
end
I am using Carrierwave to upload photo to cloudinary. I have a cloudinary.yml file with my configuration as well as a cloudinary.rb in my initializers.
identitylogo_uploader.rb
class IdentitylogoUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
process :convert => 'png'
process :tags => ['logo_entreprise']
version :standard do
process :resize_to_fill => [150, 150, :north]
end
version :thumbnail do
resize_to_fit(50, 50)
end
def public_id
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
company.rb
class Company < ApplicationRecord
mount_uploader :identitylogo, IdentitylogoUploader
end
companies_controller.erb
def update
@company.update(company_params)
redirect_to company_path(@company)
end
def company_params
params.require(:company).permit(:identitylogo, :name, :industry,
:employees, :website)
end
_form.erb
<%= simple_form_for @company do |f| %>
<%= f.input :name %>
<%= f.input :industry %>
<%= f.input :employees %>
<%= f.input :website %>
<%= f.input :identitylogo_cache, as: :hidden %>
<%= f.input :identitylogo, label: false %>
<%= f.button :submit %>
<% end %>
_show.html.erb
<img src="<%= @company.identitylogo %> " alt="Logo de
l'entreprise">
I noticed that the link is generated yet the file is not uploaded to cloudinary.
Added config.cache_storage = :file
to carrierwave initializer and the error is gone.
CarrierWave.configure do |config|
# For an application which utilizes multiple servers but does not need caches persisted across requests,
# uncomment the line :file instead of the default :storage. Otherwise, it will use the default storage as the temp cache store.
config.cache_storage = :file
end
Here is the commit that change the old behavior : link
Seems like the newest version of CarrierWave is not compatible with Cloudinary yet.
Check your Gemfile and Gemfile.lock. I had to remove the .rc-ending and restart the server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With