Reputation: 151
i created a shop.
i host images on Cloudinary. I can load images on local and production but i don't find them on cloudinary.
i follow: https://github.com/cloudinary/cloudinary_gem https://github.com/0sc/activestorage-cloudinary-service
gemfile:
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.6'
gem 'rails', '~> 6.0.3', '>= 6.0.3.5'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 4.1'
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 4.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
# Use Active Storage variant
# gem 'image_processing', '~> 1.2'
gem 'bootsnap', '>= 1.4.2', require: false
gem 'solidus'
gem 'solidus_auth_devise'
gem 'cloudinary'
gem 'activestorage-cloudinary-service'
group :development, :test do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'dotenv-rails'
end
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '~> 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
gem 'webdrivers'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
config/storage.yml
cloudinary:
service: Cloudinary
cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %>
api_key: <%= ENV['CLOUDINARY_API_KEY'] %>
api_secret: <%= ENV['CLOUDINARY_API_SECRET'] %>
config/environments/production.rb
config.active_storage.service = :cloudinary
spree.rb: lines about paperclip are commented
# Enable Paperclip adapter for attachments on images and taxons
# config.image_attachment_module = 'Spree::Image::PaperclipAttachment'
# config.taxon_attachment_module = 'Spree::Taxon::PaperclipAttachment'
storage.yml
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
cloudinary:
service: Cloudinary
i tried to test it in local, the mage appear on the app but not on the hosting system.
config/environments/development.rb
config.active_storage.service = :cloudinary
config/cloudinary.yml
development:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: false
production:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: true
test:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: false
thanks for your help
Upvotes: 1
Views: 554
Reputation: 151
i find a solution
integrate cloudinary with active_record
gemfile
gem 'rails', '~> 6.1'
# Use Active Storage variant
gem 'image_processing', '~> 1.2'
gem 'cloudinary'
gem 'activestorage-cloudinary-service'
then
bundle install
Active_record need rails >6.1
bundle update rails
cloudinary.yml or set environnement variable on your server
development:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: false
production:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: true
test:
cloud_name: xxx
api_key: 'xxx'
api_secret: xxx
enhance_image_tag: true
static_file_support: false
spree.rb
# Enable Paperclip adapter for attachments on images and taxons
config.image_attachment_module = 'Spree::Image::ActiveStorageAttachment'
config.taxon_attachment_module = 'Spree::Taxon::ActiveStorageAttachment'
storage.yml
....
cloudinary:
service: Cloudinary
config/environnements/production.rb
config.active_storage.service = :cloudinary
if it raises an error.
ActiveModel::UnknownAttributeError (unknown attribute 'service_name' for ActiveStorage::Blob.):
rails active_storage:update
rails db:migrate
the DB need to be empty of products if else it raises an error
https://github.com/solidusio/solidus/discussions/3930#discussioncomment-361391
Upvotes: 1
Reputation: 1
Would you kindly submit a ticket indicating your cloud name so I can investigate for you? Best, Mo
Upvotes: 0