Не удается преобразовать изображение в URL: to_model делегирован во вложении, но вложение равно нулю - Amazon S3 - PullRequest
0 голосов
/ 22 марта 2020

Я просмотрел пару постов, но не могу найти ответ. Поэтому в моем регионе я загружаю фотографии в корзину 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 enter image description here

Я использовал это service в config / environment / development.rb: enter image description here

Контроллер загружает изображение:

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

Изображения отображаются в корзине. Это загружается. enter image description here

Но когда я пытаюсь отобразить iamge в представлении, я получаю Не удается преобразовать изображение в URL: to_model делегирован во вложении, но вложение равно нулю

enter image description here

Чего мне не хватает? В качестве руководства я использовал документы: https://edgeguides.rubyonrails.org/active_storage_overview.html#direct -загрузок

Спасибо!

...