ruby on rails - cms - ¿Cómo puedo usar un ayudante en diferentes vistas?
crm ruby on rails (3)
Estoy usando la refinería cms en este momento. Creé un motor y con él algunos ayudantes en app/helpers/admin/
. ahora también me gustaría usar esos ayudantes en mi vista frontal (es decir, app/views/myapp/index
). pero no puedo ... error de método indefinido. ¿Qué tengo que hacer antes de copiar todo a app/helpers/
? el ayudante se parece a esto
module Admin
module myHelper
def somefunc
end
end
end
somefunc
es posible utilizar somefunc
fuera del módulo de administración?
En tu application_helper.rb
:
module ApplicationHelper
include Admin::MyHelper
end
Esto importará esos métodos de ayuda en ApplicationHelper
, por lo que estará disponible en sus vistas. Podrías hacer esto en cualquiera de tus ayudantes realmente.
La "forma de Rails" para incluir un ayudante de una ruta no estándar en una vista es usar el método .helper dentro de su controlador.
class MyController < ApplicationController
helper Admin::MyHelper
...
end
http://apidock.com/rails/AbstractController/Helpers/ClassMethods/helper
Puede intentar usar la referencia completa del objeto como Admin::myHelper::somefunc
para llamar a somefunc
fuera del módulo Admin
.