Я реализовал CarrierWave для загрузки изображений профиля для пользователей в моем приложении и MiniMagick для изменения размера нескольких версий.
image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb_card do
process :resize_to_fit => [190, 210]
end
version :thumb_profile, from_version: :thumb_card do
process :resize_to_fit => [100, 100]
end
version :thumb, from_version: :thumb_card do
process :resize_to_fit => [60, 60]
end
def extension_white_list
%w(jpg jpeg gif png)
end
def content_type_whitelist
/image\//
end
end
user.rb
mount_uploader :image, ImageUploader
Также добавлено: изображение в разрешенных user_params.
html.erb
<%= image_tag(current_user.image.thumb_profile.url, { :alt=> 'Image',
:id=>'avatar_img' ,:style=>'padding-top: 5px;' }) if current_user.image? %>
<%= user.file_field :image %>
Все это отлично работает на локальном сервере. Но когда я нажимаю на свой экземпляр EC2, изображения не загружаются, и каждая транзакция откатывается
ошибка
User Exists (1.5ms) SELECT 1 AS one FROM `users` WHERE
`users`.`email` = 'test3@example.com' AND (`users`.`id` != 4) LIMIT 1
User Exists (1.4ms) SELECT 1 AS one FROM `users` WHERE
`users`.`phone` = '431 532 5413' AND (`users`.`id` != 4) LIMIT 1
(1.3ms) ROLLBACK
Не удается найти папку public / assets / uploads на сервере EC2.
Я думаю, он не будет генерироваться, пока загрузка не будет успешной?
Хотел бы кто-нибудь указать, почему точный код работает локально, но не работает? ТИА.