Pan*_*nts 7 ruby-on-rails ruby-on-rails-6
我从 ActionStorage 中删除了config/application.rb但我在运行时看到了这些路由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
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何删除这些?
draw_routes在 application.rb 配置文件中将配置设置为 false https://github.com/rails/rails/blob/439d4995c1dab475b576fcb19ea95ae37e0ed222/guides/source/configuring.md#configuring-active-storage
config.active_storage.draw_routes = false
Run Code Online (Sandbox Code Playgroud)
编辑:截至目前,当前的稳定版本(6.0-stable)不支持这个选项,它在主分支上,应该在下一个版本上工作
小智 6
要从现有 Rails 应用程序中删除 ActiveStorage 路由,需要进行两项更改:
首先,在config/application.rb,注释掉active_storage/engine和action_text/engine:
require_relative 'boot'
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_text/engine"
require "action_cable/engine"
require "rails/test_unit/railtie"
Run Code Online (Sandbox Code Playgroud)
然后,在每个environment配置文件(例如config/development.rb)中,注释掉config.active_storage.service:
# Store uploaded files on the local file system (see config/storage.yml for options).
# config.active_storage.service = :local
Run Code Online (Sandbox Code Playgroud)
这将删除 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.
Run Code Online (Sandbox Code Playgroud)
有一种“官方”方法可以做到这一点,它内置于 Rails 中。如果您使用以下命令创建新项目
$ rails new dummy_project --skip-active-storage
Run Code Online (Sandbox Code Playgroud)
您可以在新创建的文件中找到config/application.rb您所需要的内容(Rails 6.0.1,但从 5.2 开始工作):
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"
Run Code Online (Sandbox Code Playgroud)
替换require 'rails/all'上面的代码片段,你就可以开始了。
| 归档时间: |
|
| 查看次数: |
3460 次 |
| 最近记录: |