Si la méthode ont été définis directement dans le contrôleur, vous auriez à le rendre disponible à des vues en appelant helper_method :method_name
.
class ApplicationController < ActionController::Base
def current_user
# ...
end
helper_method :current_user
end
Avec un module, vous pouvez faire la même chose, mais c'est un peu plus compliqué.
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, oui, si votre module est censé être strictement un module d'aide, vous pouvez le faire comme dit Lichtamberg. Mais encore une fois, vous pouvez simplement le nommer AuthenticationHelper
et le mettre dans le dossier app/helpers
.
Bien que, par ma propre expérience avec le code d'authentification, va voulez qu'il soit disponible pour le contrôleur et les vues. Parce que généralement vous allez gérer l'autorisation dans le contrôleur. Les assistants sont exclusivement disponibles pour la vue. (Je crois qu'ils ont été initialement conçus comme des raccourcis pour les constructions html complexes.)
UPD: rails version 2.3.3 –
Ah oui, enfin, il semble qu'il serait avantageux pour vous de créer ceci comme un plugin au lieu de fichier lâche dans/lib. – kch
Quel est le point de 'return sauf m
Liquiddots