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.