web-dev-qa-db-ja.com

Rails 5.2でアクティブストレージを無効にする

Rails 5.2にアップグレードすると、storage.ymlをバージョン管理にコミットする必要があることがわかりました。ActiveStorageを使用する予定はありません。それを無効にする方法はありますか?

19
lulalala

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を省略する必要がある場合は、以下に示すソリューションを使用できます。

28
Borisa Eric

私がこれまでに見つけた唯一の解決策は、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 から取得されます。

8
MikeRogers0

config/environments/*.rbから次のような行を削除します

config.active_storage.service = :local

Railsはyamlファイルをロードしません。

2
lulalala

問題が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'] %>
0
Daniel Garcia