Я только что обновил 5.1.4. app до версии 5.2, и я пытаюсь заменить Paperclip на ActiveStorage. В момент, когда пытаюсь обновить существующую запись изображением, я получаю следующую ошибку:
Не удалось автозагрузить константу ActiveStorage :: Blob :: Analyzable, ожидалось /Users/Simon/.rvm/gems/ruby-2.4.0/gems/activestorage-5.2.0/app/models/active_storage/blob/analyzable.rb для определения Это
В моей модели:
has_one_attached :pic
В моем контроллере:
...
def update
respond_to do |format|
if @gin.update(gin_params)
format.html { redirect_to @gin, notice: 'Gin was successfully updated.' }
format.json { render :show, status: :ok, location: @gin }
else
format.html { render :edit }
format.json { render json: @gin.errors, status: :unprocessable_entity }
end
end
end
...
def gin_params params.require(:gin).permit(:name, :text, :snippet,
:pic, :slug, :abv, distillery_attributes: [:id, :name], botanical_ids:
[]) end
В storage.yml:
amazon:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
region: xx-xxxx-x
bucket: xxxxxxx
Ключи доступа выставляю через rails credentials:edit
В development.rb:
config.active_storage.service = :amazon
На мой взгляд:
<%= image_tag @gin.pic, class: "border shadow-lg" %>
Я читал хотя http://edgeapi.rubyonrails.org/classes/ActiveStorage/Blob/Analyzable.html, но для меня это не имеет особого смысла.
Ошибка заставила меня искать файл по адресу app/models/active_storage/blob/analyzable.rb
, но я не вижу его в своем приложении?
Что я пропустил?
gem "aws-sdk-s3", require: false
в вашем Gemfile? А вы сделалиrails active_storage:install
,rake db:migrate
? - person Artem Dorodovskyi   schedule 13.05.2018