Rails Active storage Невозможно автоматически загрузить константу ActiveStorage :: Blob :: Analyzable - PullRequest
0 голосов
/ 11 июня 2018

Я обновил рельсы с 5.1.4 до 5.2 и удалил Papaerclip, чтобы использовать Active Storage.Я использую digitalocean space.В моей среде разработки я установил учетные данные в storage.yml для сохранения изображений в digitalocean.

Я добавил aws-sdk-s3 gem в gemfile (без версии, возможно, этопроблема?).

Я запускаю db:migrate для активного хранилища.

Но когда я собираюсь отправить форму с HTML-тегом загрузки изображения, я получаю эту ошибку:

Невозможно автоматически загрузить константу ActiveStorage :: Blob :: Analyzable.

Кто-нибудь может мне помочь?

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Если вы обновляете старую версию Rails до версии, содержащей ActiveStorage, важно создать стандартную систему хранения storage.yml.Возможно, вы сохранили свои учетные данные через

rails credentials:edit

И ваши настройки для S3 могут выглядеть примерно так:

amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.aws[:access_key_id] %>
  secret_access_key: <%= Rails.application.credentials.aws[:secret_access_key] %>
  region: <%= Rails.application.credentials.aws[:region] %>
  bucket: <%= Rails.application.credentials.aws[:bucket] %>

Проблема, с которой я столкнулся, заключалась в том, что при сохранении моих учетных данных в хранилище.yml, все ключи были сохранены как комментарии.Запустите EDITOR='atom --wait' rails credentials:edit (с редактором, который вы используете; в этом примере я использую Atom) и убедитесь, что ни один из ваших элементов не прокомментирован с помощью #.Когда вы закрываете окно, ваши учетные данные должны автоматически сохраняться и быть доступны.

Надеюсь, это поможет!

0 голосов
/ 06 сентября 2018

Верьте или нет, я столкнулся с той же ошибкой.Спустя час, чтобы выяснить, что проблема была в моем storage.yaml файле

В логах произошла ошибка Psych::SyntaxError - (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1:

, что означало, что Psych это YAML У парсера возникла проблема с разбором файла.

Он выдавал ошибку Unable to autoload constant ActiveStorage::Blob::Analyzable из-за Пробела

Надеюсь, это кому-нибудь поможет

ПРИМЕР ДО

| amazon:
    service: S3
    access_key_id: <%= Rails.application.credentials.aws[:access_key_id] %>
    secret_access_key: <%= Rails.application.credentials.aws[:secret_access_key] %>
    region: <%= Rails.application.credentials.aws[:region] %>
    bucket: <%= Rails.application.credentials.aws[:bucket] %>

ПРИМЕР ПОСЛЕ

|amazon:
   service: S3
   access_key_id: <%= Rails.application.credentials.aws[:access_key_id] %>
   secret_access_key: <%= Rails.application.credentials.aws[:secret_access_key] %>
   region: <%= Rails.application.credentials.aws[:region] %>
   bucket: <%= Rails.application.credentials.aws[:bucket] %>
0 голосов
/ 11 июня 2018
...