2011-09-06 12 views
5

Sin un montón de código específico, esto es solo impreciso, pero proporcionaré lo que pueda.Una forma de agregar before_filter del motor a la aplicación

Dado un motor de rieles, un motor básico y no un motor que se puede montar en su propio espacio, ¿cómo hago que los métodos del motor estén disponibles para la aplicación como un filtro anterior para los controladores de aplicaciones?

He estado buscando a través del código de Devise, porque lo que quiero es similar a mi experiencia con Devise, pero admito que no entiendo mucho de lo que estoy pasando.

Puedo hacer esto si pongo include Myengine::Mymodule en los controladores de aplicaciones donde quiero que los métodos estén disponibles para el filtrado, pero quiero que sea posible simplemente usar los métodos sin tener que incluir los módulos.

Esta es la última barricada en tratar de convertir una aplicación de rieles en un motor para ser utilizado por múltiples aplicaciones de rieles, y se aprecia cualquier orientación sobre cómo manejar adecuadamente el espacio de nombres, la configuración del módulo, etc.

Respuesta

5

Si le he entendido correctamente, puede utilizar inicializador, por ejemplo:

module MyEngine 
    class Engine < Rails::Engine 
     initializer "myengine.load_helpers" do 
      ActiveSupport.on_load(:action_controller) do 
       include MyEngine::Helpers 
      end 
     end 
    end 
end 
+0

puedo intentar esto, pero puedo explicar lo que esto hace en realidad? – blueblank

+0

Esto funcionó, gracias. – blueblank

Cuestiones relacionadas