Я просмотрел пару постов, но не могу найти ответ. Поэтому в моем регионе я загружаю фотографии в корзину Amazon s3 (отдельную корзину для производства)
Вот моя политика корзины:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::<bucket_name>"
},
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<bucket_name>/*"
}
]
}
Вот моя конфигурация CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin> http://localhost:3000 </AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
У пользователя есть один аватар:
class User < ActiveRecord::Base
has_secure_password validations: false
has_many :likes
has_many :stories
has_one_attached :avatar
validates :email, :full_name, :password_digest, presence: true
end
Я настроил свой сервис в config / storage.yml
Я использовал это service в config / environment / development.rb:
Контроллер загружает изображение:
def create
@user = User.new(user_params)
if @user.save
flash[:notice] = "Welcome #{@user.full_name}"
redirect_to root_path
else
flash[:error] = "Please fix the following error(s)"
render :new
end
end
Изображения отображаются в корзине. Это загружается.
Но когда я пытаюсь отобразить iamge в представлении, я получаю Не удается преобразовать изображение в URL: to_model делегирован во вложении, но вложение равно нулю
Чего мне не хватает? В качестве руководства я использовал документы: https://edgeguides.rubyonrails.org/active_storage_overview.html#direct -загрузок
Спасибо!