dav*_*000 10 ruby-on-rails ruby-on-rails-6
我有一个全新的轨道6的应用程序,并没有任何东西在config/routes.rb,输出bin/rails routes具有非常长的URL为ActiveStorage,动作邮箱,和指挥的大规模清单。
这bin/rails routes作为一种文档形式完全无用,特别是因为 的选项bin/rails routes不允许过滤掉东西。
我不想省略 Rails 的这些部分,因为我可能需要它们。但我更喜欢这些路线 a) 如果我不使用它们就不存在 b) 不出现在bin/rails routes.
有谁知道如何使这项工作?
dav*_*000 12
从 Rails 6.0.2.1 开始,这是这样做的方法:
在 中config/application.rb,删除该行require "rails/all"并将其替换为:
# See https://github.com/rails/rails/blob/v6.0.2.1/railties/lib/rails/all.rb for the list
# of what is being included here
require "rails"
# This list is here as documentation only - it's not used
omitted = %w(
active_storage/engine
action_cable/engine
action_mailbox/engine
action_text/engine
)
# Only the frameworks in Rails that do not pollute our routes
%w(
active_record/railtie
action_controller/railtie
action_view/railtie
action_mailer/railtie
active_job/railtie
rails/test_unit/railtie
sprockets/railtie
).each do |railtie|
begin
require railtie
rescue LoadError
end
end
Run Code Online (Sandbox Code Playgroud)
请注意,如果您保留 actiontext,您仍然会包含一些活动的存储路由。不知道为什么。此配置基本上意味着您不能使用活动存储、操作文本或操作邮箱。将这些带回来将带回许多您永远不需要的路线。
另请注意,此解决方案有成本,因为每次 Rails 版本升级时,您都必须检查rails/all.rb以确保没有添加您可能关心的新框架(或删除您不再需要的框架)。
小智 2
您可以通过注释掉 .txt 文件中的特定 require 行来省略 ActionMailbox 路由application.rb。
具体来说,如果您注释该require "action_mailbox/engine"行,您将不再看到任何/rails/action_mailbox或/rails/conductor/action_mailbox路线。
您需要重新启动应用程序才能使更改生效。
| 归档时间: |
|
| 查看次数: |
2122 次 |
| 最近记录: |