Si el método se define directamente en el controlador, que tendría que ponerla a disposición de vistas llamando helper_method :method_name
.
class ApplicationController < ActionController::Base
def current_user
# ...
end
helper_method :current_user
end
Con un módulo, puede hacer lo mismo, pero es un poco más complicado.
module Authentication
def current_user
# ...
end
def self.included m
return unless m < ActionController::Base
m.helper_method :current_user # , :any_other_helper_methods
end
end
class ApplicationController < ActionController::Base
include Authentication
end
Ah, sí, si el módulo está destinado a ser estrictamente un módulo de ayuda, que puede hacer como Lichtamberg dijo. Pero, de nuevo, puede llamarlo AuthenticationHelper
y ponerlo en la carpeta app/helpers
.
Aunque, según mi propia experiencia con el código de autenticación, será y quiero que esté disponible tanto para el controlador como para las vistas. Porque generalmente manejarás la autorización en el controlador. Los ayudantes están exclusivamente disponibles para la vista. (Creo que originalmente estaban pensados como abreviaciones para construcciones html complejas).
UPD: rails versión 2.3.3 –
Ah, sí, por último, parece que sería ventajoso crear esto como un complemento en lugar de un archivo suelto en/lib. – kch
¿Cuál es el punto de 'return a menos que m
Liquiddots