NameError异常:未初始化的常量ActiveStorage :: Attachment :: ActiveStorage :: Blob

时间:2019-05-16 17:34:40

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

我正在尝试使用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。我尝试使用Google搜索该错误,但此错误消息没有看到任何内容。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

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

storage.yml文件中的一个块最终未对齐。造成yaml parse error的原因是,我想象了下游的整个加载/初始化错误列表。

您可以用短绒棉衣或通过从Rails控制台运行Rails.application.config_for(:storage)来验证您的Yaml。

答案 1 :(得分:0)

在我的情况下(使用 Rails 5.1.4 和 ruby​​ 2.4.2 的旧版应用程序)改变了由 activestorage 安装创建的迁移文件:

ActiveStorage::CreateTables

为此:

ActiveStorageCreateTables

文件可以位于db/migrate/