在 Rails 5.2 中禁用活动存储

Disable Active Storage in Rails 5.2

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

config/environments/*.rb

中删除如下行
config.active_storage.service = :local

Rails 将不会加载 yaml 文件。

到目前为止我找到的唯一解决方案是 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.

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.