升级至Rails 5.2后如何禁用Active Storage?
没问题!升级到Rails 5.2后不想用Active Storage完全可以禁用,按下面几步来就行:
如何在Rails 5.2中禁用Active Storage(无需提交storage.yml)
- 移除Active Storage初始化文件:如果项目里存在
config/initializers/active_storage.rb,直接删掉它即可。 - 忽略storage.yml文件:在你的
.gitignore文件中添加一行config/storage.yml,这样就不用把它提交到版本控制了。如果之前不小心已经提交过这个文件,先执行命令git rm --cached config/storage.yml,再提交.gitignore的修改。 - 在application.rb中禁用Active Storage引擎:
打开config/application.rb,如果你的代码里是用require 'rails/all'加载所有Rails组件的话,把这行替换成手动加载需要的组件,记得去掉active_storage/engine相关的加载代码。示例如下:
如果本来就是手动加载组件的,直接删掉包含require "rails" # 手动加载所需Rails组件,排除Active Storage require "active_model/railtie" require "active_job/railtie" require "active_record/railtie" require "action_controller/railtie" require "action_mailer/railtie" require "action_view/railtie" require "action_cable/engine" require "sprockets/railtie" require "rails/test_unit/railtie"active_storage/engine的那一行就OK。 - 清理迁移文件(可选):如果之前运行过
rails active_storage:install生成了迁移文件,找到db/migrate目录下所有以_active_storage_开头的迁移文件,删掉它们,避免后续执行迁移时创建无用的数据库表。
这样操作之后,Active Storage就完全不会在你的项目里生效了,也不用再纠结storage.yml的提交问题啦!
内容的提问来源于stack exchange,提问作者lulalala
相关产品推荐
相关产品推荐

