【发布时间】:2011-03-26 14:15:57
【问题描述】:
我正在将 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(或Gemfile 中列出的gem)中,需要并在config.ru 中加载。
【问题讨论】:
标签: ruby-on-rails conventions rack middleware