NameError 异常:未初始化的常量 ActiveStorage::Attachment::ActiveStorage::Blob
NameError Exception: uninitialized constant ActiveStorage::Attachment::ActiveStorage::Blob
我正在尝试使用我的 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。我试着用谷歌搜索这个错误,但没有看到任何关于这个错误信息的信息。任何帮助将不胜感激!
我刚刚 运行 进入这个问题并用最简单的解决方案解决了。
storage.yml
文件有一个块最终未对齐。导致 yaml parse error
并且我想象整个下游加载/初始化错误列表。
您可以使用 linter 或通过 rails 控制台 运行 Rails.application.config_for(:storage)
验证您的 yaml。
在我的例子中(使用 Rails 5.1.4 和 ruby 2.4.2 的遗留应用程序)有效的是改变由 activestorage 安装创建的迁移文件:
ActiveStorage::CreateTables
为此:
ActiveStorageCreateTables
文件位于db/migrate/
我的问题也出现在storage.yml
,但那是因为我在一段被注释的代码中嵌入了Ruby,但是Ruby标签没有被注释:
# digitalocean_spaces:
# service: S3
# access_key_id: <%= Rails.application.credentials.dig(:digitalocean_spaces, :access_key_id) %>
我正在尝试使用我的 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。我试着用谷歌搜索这个错误,但没有看到任何关于这个错误信息的信息。任何帮助将不胜感激!
我刚刚 运行 进入这个问题并用最简单的解决方案解决了。
storage.yml
文件有一个块最终未对齐。导致 yaml parse error
并且我想象整个下游加载/初始化错误列表。
您可以使用 linter 或通过 rails 控制台 运行 Rails.application.config_for(:storage)
验证您的 yaml。
在我的例子中(使用 Rails 5.1.4 和 ruby 2.4.2 的遗留应用程序)有效的是改变由 activestorage 安装创建的迁移文件:
ActiveStorage::CreateTables
为此:
ActiveStorageCreateTables
文件位于db/migrate/
我的问题也出现在storage.yml
,但那是因为我在一段被注释的代码中嵌入了Ruby,但是Ruby标签没有被注释:
# digitalocean_spaces:
# service: S3
# access_key_id: <%= Rails.application.credentials.dig(:digitalocean_spaces, :access_key_id) %>