Отключить активное хранилище в Rails 5.2
Обновление Rails до 5.2, и я узнал, что должен зафиксировать файл storage.yml в управлении версиями. Я не планирую использовать ActiveStorage. Есть ли способ отключить его?
Ответы
Ответ 1
Удалить следующую строку из config/application.rb
require "active_storage/engine"
Удалить следующую строку из окружения config/environments/*.rb
config.active_storage.service = :local
Удалить следующую строку из app/assets/javascripts/application.js
//= require activestorage
Маршруты рельсов ActiveStorage исчезнут
Если в application.rb
есть оператор require 'rails/all'
тогда вы можете использовать решение, представленное ниже, где вам нужно требовать зависимости по зависимости и опускать active_storage
.
Ответ 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.
Ответ 3
Удалите строки из следующего config/environments/*.rb
из config/environments/*.rb
config.active_storage.service = :local
Rails не загрузит файл yaml.
Ответ 4
Если ваша проблема связана с развертыванием в Heroku, я обнаружил, что решение проблемы с адаптером базы данных postgres
может решить эту проблему. Измените производственный раздел config/database.yml
на:
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'] %>