Estoy en el proceso de refacturación de una lógica integrada en una aplicación de Rails en middleware, y una de las molestias con las que me he encontrado es una aparente falta de convención sobre dónde ubicarlas.¿Dónde coloca sus archivos de middleware Rack y requiere?
Actualmente me he decidido por app/middleware
pero podría fácilmente moverlo a vendor/middleware
o tal vez vendor/plugins/middleware
...
El mayor problema es tener que requerir los archivos individuales en la parte superior de config/environment.rb
require "app/middleware/system_message"
require "app/middleware/rack_backstage"
o si no recibo errores constantes no inicializados en las líneas config.middleware.use
. Eso podría ser complicado muy rápidamente. Prefiero que esto esté guardado en un inicializador en alguna parte.
¿Hay un lugar convencional para poner esto?
La respuesta específica que estoy buscando con esta recompensa es: donde puedo poner las líneas requerir para que no se saturan el archivo environment.rb pero todavía se cargan antes de la config.middleware.use llamadas? Todo lo que he probado conduce a errores constantes no inicializados.
actualización: Ahora que estamos usando Rails 3.0, que tratar a una aplicación Rails como cualquier otra aplicación del estante; los archivos de código para middleware van en lib
(o una gema listada en Gemfile
) y se requieren y cargan en config.ru
.
Gracias, lo tendré en cuenta cuando actualizo. –
¿Podría agregar algún enlace como referencia? No está funcionando de la caja para mí y las guías de Google/Rails no ayudan ... ¡gracias! – dgilperez
Lo hice de manera inmediata, luego de darme cuenta de que había cometido el error de colocarlo en mi carpeta raíz en lugar de en la carpeta de la aplicación (ya especificada). Entonces, foo_app/app/middleware/file.rb. – d3vkit