我目前使用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
自己加载文件。
这里有一些关于这个用例的文档。