【问题标题】:NameError Exception: uninitialized constant ActiveStorage::Attachment::ActiveStorage::BlobNameError 异常:未初始化的常量 ActiveStorage::Attachment::ActiveStorage::Blob
【发布时间】:2019-05-16 17:34:39
【问题描述】:

我正在尝试使用我的 Rails 数据库并不断遇到此错误。数据库在 5 天前停止工作时之前没有任何活动存储问题,我开始看到此错误:

*** NameError Exception: uninitialized constant ActiveStorage::Attachment::ActiveStorage::Blob

我有一个发生错误的 .jbuilder 文件,

json.array! @campaigns do |campaign|
    byebug
    json.extract! campaign, :id, :title, :description, :goal, :campaign_end, :user_id, :current_amount, :ends, :percent_complete, :amount_left_to_fund, :owner, :successful
    json.photoUrl url_for(campaign.photo)
end

它说 url_for(campaign.photo) 我得到了错误。但是,只需键入 campaign.photo 即可显示 ActiveStorage 实例及其附加到的活动:

#<ActiveStorage::Attached::One:0x00007febc64f91b0 @name="photo", @record=#<Campaign id: 7, title: "Surgery", description: "Lorem ipsum dolor sit amet, consectetur adipiscing...", goal: 5000, user_id: 8, campaign_end: "2019-05-31 16:00:00", created_at: "2019-05-01 14:20:14", updated_at: "2019-05-01 14:20:14", successful: false>, @dependent=:purge_later>

我只是想获取这张活动存储照片的 url。我尝试用谷歌搜索这个错误,但没有看到任何与此错误消息有关的内容。任何帮助将不胜感激!

【问题讨论】:

  • 你跑rails active_storage:install了吗?
  • 是的,我做到了。在我开始看到这个错误之前,一切都工作得很好,rails active_storage:install 是我做的第一件事。我的架构中有活动存储表,并且图片与后端中的正确模型相关联。

标签: ruby-on-rails activerecord rails-activestorage uninitialized-constant


【解决方案1】:

我刚遇到这个问题,用最简单的方法解决了。

storage.yml 文件中有一个块最终未对齐。导致yaml parse error,我想象下游加载/初始化错误的完整列表。

您可以使用 linter 或简单地从 rails 控制台运行 Rails.application.config_for(:storage) 来验证您的 yaml。

【讨论】:

  • 就是这样,毕竟是yaml文件的错误。
【解决方案2】:

在我的情况下(使用 Rails 5.1.4 和 ruby​​ 2.4.2 的旧版 APP)起作用的方法是更改​​由 activestorage 安装创建的迁移文件:

ActiveStorage::CreateTables

到这里:

ActiveStorageCreateTables

文件可以位于 db/migrate/

【讨论】:

    【解决方案3】:

    我的问题也出现在storage.yml,但这是因为我在一段代码中嵌入了 Ruby,该代码段已被注释,但 Ruby 标记没有被注释:

    # digitalocean_spaces:
    #   service: S3
    #   access_key_id: <%= Rails.application.credentials.dig(:digitalocean_spaces, :access_key_id) %>
    

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多