我正在将 Rails 应用程序中内置的一些逻辑重构为中间件,我遇到的一个烦恼是似乎缺乏放置它们的约定。
目前我已经解决了,app/middleware
但我可以很容易地将它移到vendor/middleware
或者可能vendor/plugins/middleware
......
最大的问题是必须要求顶部的单个文件config/environment.rb
require "app/middleware/system_message"
require "app/middleware/rack_backstage"
否则我会在行上得到未初始化的常量错误config.middleware.use
。这可能会很快变得一团糟。我宁愿把它藏在某个地方的初始化程序中。
有放置这些东西的传统地方吗?
我正在寻找这个赏金的具体答案是:我可以在哪里放置 require 行,以便它们不会弄乱 environment.rb 文件,但仍然在 config.middleware.use 调用之前加载?我尝试过的一切都会导致未初始化的常量错误。
更新:现在我们使用的是 Rails 3.0,我将 Rails 应用程序视为任何其他 Rack 应用程序;中间件的代码文件进入lib
(或列出的 gem Gemfile
),需要并加载到config.ru
.