在Rails 5.2中禁用活动存储

时间:2018-04-13 09:06:43

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

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

4 个答案:

答案 0 :(得分:25)

ui->tableWidget->editItem(ui->tableWidget->currentItem());

删除下一行
config/application.rb

从环境require "active_storage/engine"

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

config.active_storage.service = :local

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

ActiveStorage rails路由将消失

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

答案 1 :(得分:5)

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

答案 2 :(得分:1)

config/environments/*.rb

中删除以下内容
config.active_storage.service = :local

然后Rails不会加载yaml文件。

答案 3 :(得分:0)

如果您的问题是部署到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'] %>