Я нахожусь в процессе рефакторинга некоторой логики, встроенной в приложение Rails, в промежуточное ПО, и одна неприятность, с которой я столкнулся, - это кажущееся отсутствие соглашения о том, где их размещать.
В настоящее время я 'мы остановились на app/middleware
, но я с таким же успехом мог бы переместить его на vendor/middleware
или, может быть, vendor/plugins/middleware
...
Самая большая проблема заключается в необходимости запрашивать отдельные файлы вверху config/environment.rb
require "app/middleware/system_message"
require "app/middleware/rack_backstage"
или я получаю неинициализированные постоянные ошибки в строках config.middleware.use
.Это может очень быстро запутаться.Я бы предпочел, чтобы это было где-то спрятано в инициализаторе.
Есть ли обычное место для размещения этого материала?
Конкретный ответ, который я ищу с этой наградой:: где я могу поместить строки с запросами, чтобы они не загромождали файл environment.rb, а загружались до вызова config.middleware.use? Все, что я пробовал, приводит к неинициализированным постоянным ошибкам.
Обновление : Теперь, когда мы используем Rails 3.0, я рассматриваю приложение Rails как любое другое приложение Rack;файлы кода для промежуточного программного обеспечения входят в lib
(или драгоценный камень, указанный в Gemfile
) и требуются и загружаются в config.ru
.