我有一个用户模型,我想在其中添加带载波的头像。
在注册表中
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
#[...]
<%= f.file_field :avatar %>
<% end %>
一切都在本地工作,但是一旦在Heroku上我都无法加载任何图像,添加图像按钮不会触发任何操作(尽管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
我在另一个帐户中使用相同的密钥,并且可以正常工作(只是存储桶名称不同)