【问题标题】:Disable Active Storage in Rails 5.2在 Rails 5.2 中禁用活动存储
【发布时间】:2018-09-23 14:09:59
【问题描述】:

将 Rails 升级到 5.2,我发现我必须将 storage.yml 提交到版本控制中。我不打算使用 ActiveStorage。有没有办法禁用它?

【问题讨论】:

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


    【解决方案1】:

    config/environments/*.rb中删除如下行

    config.active_storage.service = :local
    

    Rails 将不会加载 yaml 文件。

    【讨论】:

    • 这会完全停止在应用启动时加载引擎吗?不是有config.active_storage = false 之类的吗?
    • @codingaddicted 我在文档中没有看到。好吧,我的主要问题是它试图加载我不想要/不需要的 YAML 文件。
    • 是的,我相信这些文档并不完整。我的很多问题暂时没有关于主动存储的回应:(
    • @codingaddicted 如果您的解决方案有效?将其发布为答案,以便我接受。
    • 我还没有找到解决方案,我认为@MikeRogers0 的方法值得一试。我不明白为什么你的评价是负面的,因为它也是一个有效的选择。平衡;)
    【解决方案2】:

    到目前为止我发现的唯一解决方案是在config/application.rb,替换:

    require 'rails/all'
    

    与:

    require "rails"
    
    # Include each railties manually, excluding `active_storage/engine`
    %w(
      active_record/railtie
      action_controller/railtie
      action_view/railtie
      action_mailer/railtie
      active_job/railtie
      action_cable/engine
      rails/test_unit/railtie
      sprockets/railtie
    ).each do |railtie|
      begin
        require railtie
      rescue LoadError
      end
    end
    

    取自 Rails 的source

    【讨论】:

    • 应用这个后,运行rails routes时出现如下错误:NoMethodError: undefined method "active_storage" for #<Rails::Application::Configuration:0x00005589ab85b968>
    • 您的active_storage 文件中可能有一个active_storage 引用;)
    【解决方案3】:

    config/application.rb中删除下一行

    require "active_storage/engine"
    

    从环境中删除下一行 config/environments/*.rb

    config.active_storage.service = :local
    

    app/assets/javascripts/application.js中删除下一行

    //= require activestorage
    

    ActiveStorage rails 路由将消失

    如果application.rb 中有声明require 'rails/all',那么您可以使用下面提供的解决方案,您需要逐个依赖并省略active_storage

    【讨论】:

    • 我已经这样做了,但是运行 rake 路由仍然会产生 /rails/active_storage... 路由
    • 现在有点不同,因为在application.rb 中有声明require 'rails/all',所以你需要逐个依赖,并确保不要遗漏一些重要的东西。请参阅下面的答案以供参考。
    • 我刚刚测试过,下面的解决方案适用于这种情况,当有require 'rails/all'
    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 2018-10-22
    • 1970-01-01
    • 2018-12-25
    • 2018-11-18
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多