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"))

并像现在一样用requirerequire_relative自己加载文件。

这里有一些关于这个用例的文档。

最新更新