【问题标题】:Rails 6 Active storage setup - NameError Exception: uninitialized constant #<Class:0x00007fddde3597d8>::AnalyzableRails 6 活动存储设置 - NameError 异常:未初始化的常量 #<Class:0x00007fddde3597d8>::Analyzable
【发布时间】:2020-07-01 12:53:26
【问题描述】:

我在 Rails 6 中使用 s3 设置活动存储。

  • 我做了 Rails active_storage:installdb: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 #&lt;Class:0x00007fddde3597d8&gt;::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.purgemodel.photo.purge_later,看看它是否有效。我不认为它会有所作为,但试试吧
  • @Meenakshi 好奇表单问题是什么?我想我遇到了同样的问题。

标签: ruby-on-rails ruby-on-rails-5 ruby-on-rails-6


【解决方案1】:

所以我遇到了这个问题,至少对我来说这是一个存储问题。

在我使用的storage.yml 本地:

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

但是文件夹storage 不见了。

创建该文件夹修复了该错误。

【讨论】:

  • 我的存储文件夹已经存在,但我仍然看到上述问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 2017-07-10
  • 1970-01-01
  • 2022-01-01
相关资源
最近更新 更多