2010-12-15 116 views

Répondre

7

Placez-le dans ApplicationController (pas un assistant) et déclarez helper_method :method_name.

+0

Vous voulez dire qu'au lieu d'utiliser un fichier séparé pour les aides globales je les ai mis sur le contrôleur d'application? – Nerian

+1

Vous pouvez les définir dans un module et les inclure dans ApplicationController. Ce que je dis, c'est qu'une méthode contenue dans un assistant ne peut pas être utilisée dans un contrôleur; cependant, une méthode dans un contrôleur (ou dans un module inclus dans un contrôleur) peut être mise à la disposition des vues et des assistants en utilisant 'helper_method'. –

11

Ou ... les inclure dans votre contrôleur

class ApplicationController < ActionController::Base 
    include UrlHelper 
end 
+0

est-ce censé fonctionner dans Rails 4? Parce que ça ne marche pas pour moi. L'inclusion fonctionne, mais les vues n'ont pas accès aux méthodes. – Michael

+0

@Michael Oui, ça marche. C'est du simple 'ruby', peu importe le' framework' ou sa 'version'. Utilisez 'include' pour les méthodes d'instance et' extend' pour les méthodes de classe. – jibiel