2012-03-21 8 views
14

He construido una gema de rieles que se monta como un motor.¿Por qué mi motor de montaje Rails no carga los métodos de ayuda correctamente?

El motor está dentro de su propio espacio de nombres.

En el motor, hay un módulo MyEngine::ApplicationHelper que agrega un montón de métodos de ayuda de vista.

En el diseño de mi aplicación, me refiero a algunos de estos métodos.

Cuando carga por primera vez alguna de las páginas en modo de desarrollo obtengo un NoMethodError, quejándose de que el método (definido en la gema ApplicationHelper) no existe.

Una vez que edito ApplicationController dentro de mi aplicación, el problema se corrige solo.

Algo me dice que esto se debe a los cambios recientes en la carga automática de Rails; Estoy usando Rails 3.2.2

no puedo por la vida de mí averiguar por qué esto no está funcionando adecuadamente sin embargo:/

+0

Estoy frente mismo problema podría ser problema porque (Modo de enrutamiento y enrutamiento más rápido) http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store/. Si encuentra la solución amablemente publíquela si encontré la solución, se lo haré saber. – Amar

Respuesta

30

Creo que las guías Rails tiene la respuesta here.

para incluir ese ayudante especial de su motor en su aplicación:

class ApplicationController < ActionController::Base 
    helper MyEngine::ApplicationHelper 
end 

para incluir todos los ayudantes de su motor en su aplicación:

class ApplicationController < ActionController::Base 
    helper MyEngine::Engine.helpers 
end 
+0

¿Cómo podemos acceder a los principales ayudantes de aplicaciones en la vista del motor? –

Cuestiones relacionadas