railstutorial.org tiene una sugerencia que me parece un poco extraña.SessionsHelper in railstutorial.org: ¿Deberían los helpers ser módulos de propósito general para códigos que no se necesitan en las vistas?
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
El include SessionsHelper
hace que los métodos disponibles de ApplicationController
, sí, pero los pone a disposición de cualquier punto de vista, también. Entiendo que la autenticación/autorización es transversal, pero ¿este es realmente el mejor lugar?
Me parece que tiene un alcance potencialmente demasiado amplio. Parece sorprendente poner código que implemente, digamos, un before_filter
que redirige condicionalmente (como lo hace el ejemplo de railstutorial.org) en un módulo que contiene más ayudantes de visualización.
¿Funcionaría mejor en ApplicationController o en otro lugar la funcionalidad no estrictamente necesaria en las vistas?
¿O simplemente estoy pensando demasiado en esto?
El 'base.helper: current_user code' es incorrecto, debe ser' base.send: helper_method,: current_user' – kain
Gracias @kain, pequeño error. Debería ser 'helper_method'. Pero puedes escribir 'base.helper_method,: current_user'. – nathanvda
Pregunta básica: en este caso, ¿cuál es la diferencia entre usar un SessionHelper y usar un módulo SessionManagment? ¿No es un ayudante solo otro módulo? –