【发布时间】:2020-07-01 12:53:26
【问题描述】:
我在 Rails 6 中使用 s3 设置活动存储。
- 我做了 Rails
active_storage:install和db:migrate。 - 在 development.rb 中,我添加了:
config.active_storage.service = :amazon - 我在 gemfile 中添加了
gem "aws-sdk-s3", require: false。 - 我的模型有这个:
has_one_attached :photo - 这是我的 storage.yml。
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
amazon:
service: "S3"
access_key_id: xxxx
secret_access_key: xxxx
region: xxxx
bucket: xxxx
-
但是在调用
model.photo.attach(params[:photo'])时,我收到了这个错误。*** NameError Exception: uninitialized constant #<Class:0x00007fddde3597d8>::Analyzable -
我的 yml 似乎是正确的,我已经在 yml 验证器中检查过了。但,
Rails.application.config_for(:storage)返回{}
任何建议都会有所帮助。
【问题讨论】:
-
可能是错字:
model.photo.attach(params[:photo']),params[:photo]中不应该有' -
您尝试重新启动服务器了吗?您的 AWS 凭证都正确吗?你安装了 MiniMagic 吗?尝试从项目的根目录停止 spring
bin/spring stop并重新启动服务器? -
我的错误。它是一个错字。我在 params['photo'] 中获得了价值。每次我对 storage.yml 进行更改时,我都会重新启动服务器。我的系统上没有运行 Spring。我有 mini_magick (4.10.1)。
-
在调用
model.photo.attach(params[:photo])之前尝试运行model.photo.purge或model.photo.purge_later,看看它是否有效。我不认为它会有所作为,但试试吧 -
@Meenakshi 好奇表单问题是什么?我想我遇到了同样的问题。
标签: ruby-on-rails ruby-on-rails-5 ruby-on-rails-6