У меня есть пользовательская модель, в которую я хочу добавить аватар с carrierwave.
в регистрационной форме
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
#[...]
<%= f.file_field :avatar %>
<% end %>
Все работает локально, но однажды в Heroku я не могу загрузить изображение, кнопка add image ничего не вызывает (у меня нетошибки в консоли JS, хотя).Журналы Heroku не жалуются ...
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
if Rails.env.production?
storage :fog
else
storage :file
end
process resize_to_fill: [395, 595]
version :thumb do
process resize_to_fill: [280, 280]
end
def default_url(*args)
"/images/fallback/" + [version_name, "random.jpg"].compact.join('_')
end
def cache_dir
"#{Rails.root}/spec/support/uploads/tmp"
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
initializers / carrier_wave.rb
if Rails.env.production?
CarrierWave.configure do |config|
config.fog_credentials = {
# Configuration for Amazon S3
:region => 'eu-west-3',
:provider => 'AWS',
:aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
config.fog_directory = ENV['S3_BUCKET_NAME']
end
end
Я использую те же ключи другой учетной записи, и она работает (только имя корзины другое)