【问题标题】:Rails API 5.1.4 Active Storage - Cannot load `Rails.config.active_storage.service`Rails API 5.1.4 活动存储 - 无法加载“Rails.config.active_storage.service”
【发布时间】:2018-10-18 15:54:25
【问题描述】:

我在使用 Rails 5 API 设置本地 Active Record 存储时遇到问题。 gem 'activestorage'rake active_storage:install 在生成迁移文件和 config/storage_services.yml 时工作正常(这让我很困惑,因为它通常只是 config/storage.yml )

我按照文档并将require "active_storage" 放入我的config/application.rb 中(我也尝试过require "active_storage/engine",但没有成功)。它似乎在 config/environments/development.rb 中出现在 config.active_storage.service = :local 行,因为它抛出了这个错误:

NoMethodError: Cannot load `Rails.config.active_storage.service`:
undefined method `[]' for nil:NilClass

Google 并不是特别有用,因此我们将不胜感激任何建议。谢谢!

【问题讨论】:

  • config/storage_services.yml 重命名为config/storage.yml 可以解决问题吗?因为错误消息看起来像 Rails 找不到配置文件。
  • 很遗憾没有
  • github.com/rails/activestorage/issues/33 的解决方案不起作用吗?这是完全相同的错误消息。本质上,“将您的config/storage_services.yml 文件复制到config/storage_services_backup.yml。然后从原始文件中删除亚马逊、谷歌和镜像部分。否则,您的服务器将无法启动,因为它将寻找密钥和文件不存在的。”

标签: ruby-on-rails ruby rails-api rails-activestorage


【解决方案1】:

可以查看bundle show activestorage是否安装了active_storage 我相信不是因为active_storage是5.2以后才预装的。

【讨论】:

    【解决方案2】:

    我知道这来得太晚了,我在尝试将 gem 添加到我的 Rails 5.1 应用程序时遇到了同样的问题。

    经过一番调试,我发现问题出在config/storage_services.yml,具体是以下amazon部分:

      access_key_id: <%= Rails.application.secrets.aws[:access_key_id] %>
      secret_access_key: <%= Rails.application.secrets.aws[:secret_access_key] %>
    

    即使您将这些行注释掉,ERB 仍会尝试评估代码,如果您未事先设置 aws 密码,则会发生错误。

    所以,如果您不打算使用它,只需删除整个 amazon 部分。或者,如果您这样做,请正确设置密码。

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2018-11-20
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      相关资源
      最近更新 更多