Ruby on rails 从Rails 6中删除ActiveStorage路由

Ruby on rails 从Rails 6中删除ActiveStorage路由,ruby-on-rails,ruby-on-rails-6,Ruby On Rails,Ruby On Rails 6,我从config/application.rb中删除了ActionStorage,但我在运行rake routes | less时看到了这些路由 我的/config/routes.rb上没有任何设置 Prefix Verb URI Pattern Controller#Action rails

我从
config/application.rb
中删除了ActionStorage,但我在运行
rake routes | less
时看到了这些路由

我的
/config/routes.rb上没有任何设置

                   Prefix Verb URI Pattern                                                                              Controller#Action
       rails_service_blob GET  /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
rails_blob_representation GET  /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
       rails_disk_service GET  /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
update_rails_disk_service PUT  /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
     rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

有人知道如何删除这些吗?

在application.rb config文件中将
draw\u routes
config设置为false


编辑:到目前为止,当前的稳定版本(6.0-stable)不支持此选项,它位于主分支上,应该可以在下一个版本中使用

这有点愚蠢,但出于某种原因,删除
配置/storage.yml
也摆脱了这些路由

有一种“官方”的方法可以做到这一点,它内置于Rails中。如果使用创建新项目

$ rails new dummy_project --skip-active-storage
您可以在新创建的
config/application.rb
中找到您所需要的内容(Rails 6.0.1,但从5.2开始工作):


用上述代码片段替换
require'rails/all'
,您应该可以开始了。

从现有rails应用程序中删除ActiveStorage路由需要两个更改:

首先,在
config/application.rb
中,注释掉
active\u storage/engine
action\u text/engine

需要相对的“启动”
需要“轨道”
#选择您想要的框架:
需要“激活的\u模型/轨道连接”
需要“活动作业/轨道连接”
需要“活动记录/轨道连接”
#需要“活动存储/引擎”
需要“控制器/轨道连接的操作”
要求采取“行动”\u邮递员/railtie
#需要“操作\文本/引擎”
需要“操作电缆/发动机”
需要“轨道/测试单元/钢轨接头”
然后,在每个
环境
配置文件(例如
config/development.rb
)中,注释掉
config.active\u storage.service

#将上传的文件存储在本地文件系统上(有关选项,请参阅config/storage.yml)。
#config.active\u storage.service=:本地
这将删除ActiveStorage路由:

$ rails routes
You don't have any routes defined!

Please add some routes in config/routes.rb.

For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html.

正如我现在所了解的,配置选项不在稳定版本中,它在主分支中,它将在下一个版本中工作,我不认为你现在可以跳过这些路线而不修改代码(我不建议这样做)。嗯-我没有
config/storage.yml
(应用程序从5.0迁移到Rails 5.3)文件,但不需要的路由仍会显示。对于现有项目,删除架构中的项+任何现有活动记录迁移可能是值得的。在rails 6中,我还需要注释
require“action\u mailbox/engine”
以删除这些路由。
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
# require "active_storage/engine"
require "action_controller/railtie"
require "action_mailer/railtie"
# require "action_mailbox/engine"
# require "action_text/engine"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"
$ rails routes
You don't have any routes defined!

Please add some routes in config/routes.rb.

For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html.