Я занимаюсь реорганизацией некоторой логики, встроенной в приложение 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
.