Rails 5.2にアップグレードすると、storage.ymlをバージョン管理にコミットする必要があることがわかりました。ActiveStorageを使用する予定はありません。それを無効にする方法はありますか?
config/application.rb
から次の行を削除します
require "active_storage/engine"
環境から次の行を削除しますconfig/environments/*.rb
config.active_storage.service = :local
app/assets/javascripts/application.js
から次の行を削除します
//= require activestorage
ActiveStorage Railsルートは消滅します
require 'Rails/all'
にapplication.rb
というステートメントがある場合、依存関係ごとに依存関係を要求し、active_storage
を省略する必要がある場合は、以下に示すソリューションを使用できます。
私がこれまでに見つけた唯一の解決策は、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/environments/*.rb
から次のような行を削除します
config.active_storage.service = :local
Railsはyamlファイルをロードしません。
問題がHerokuへのデプロイに関するものである場合、データベースアダプターがpostgres
であることを確認することで問題を解決できることがわかりました。 config/database.yml
のproductionセクションを次のように変更します。
production:
adapter: postgresql
encoding: unicodeubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("Rails_MAX_THREADS") { 5 } %>
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>