Rails 6 上中间件的最佳位置
Best place for Middlewares on Rails 6
我目前正在使用 Rais 6 并使用中间件。我有一些工作,但我不喜欢它。我该如何改进?
目前我的中间件在这里:
app/middleware/my_middleware.rb
然后 config/application.rb
我打电话给
require_relative '../app/middleware/my_middleware
如果没有 require_relative
,它是行不通的。如果我将它们添加到 app
文件夹中,它也不起作用。我错过了什么?
无法重新加载中间件,因为中间件堆栈是在应用程序启动期间设置的,从未重建过。
因此,您应该告诉主自动加载器忽略目录:
# config/initializers/zeitwerk.rb
Rails.autoloaders.main.ignore(Rails.root.join("app/middleware"))
并使用 require
或 require_relative
自己加载文件,就像您正在做的那样。
有一些关于这个用例的文档here。
我目前正在使用 Rais 6 并使用中间件。我有一些工作,但我不喜欢它。我该如何改进?
目前我的中间件在这里:
app/middleware/my_middleware.rb
然后 config/application.rb
我打电话给
require_relative '../app/middleware/my_middleware
如果没有 require_relative
,它是行不通的。如果我将它们添加到 app
文件夹中,它也不起作用。我错过了什么?
无法重新加载中间件,因为中间件堆栈是在应用程序启动期间设置的,从未重建过。
因此,您应该告诉主自动加载器忽略目录:
# config/initializers/zeitwerk.rb
Rails.autoloaders.main.ignore(Rails.root.join("app/middleware"))
并使用 require
或 require_relative
自己加载文件,就像您正在做的那样。
有一些关于这个用例的文档here。