J'ai quelques Ruby dont certains (ou tous) les contrôleurs ont besoin. J'ai essayé de les mettre dans /app/helpers/application_helper.rb
. Je l'ai utilisé pour les méthodes à utiliser dans les vues. Mais les contrôleurs ne voient pas ces méthodes. Y a-t-il un autre endroit où je devrais les mettre ou dois-je accéder à ces méthodes d'assistance différemment?
Utiliser les derniers Rails stables.
Vous devez définir la méthode dans ApplicationController
.
Pour Rails 4 et plus, les préoccupations sont la solution. Il existe un article décent ici http://richonrails.com/articles/Rails-4-code-concerns-in -active-record-models
En substance, si vous regardez dans le dossier de votre contrôleur, vous devriez voir un sous-dossier de problèmes. Créez un module dans ce sens
module EventsHelper
def do_something
end
end
Ensuite, dans le contrôleur, incluez-le simplement
class BadgeController < ApplicationController
include EventsHelper
...
end
vous devez définir des méthodes dans le contrôleur d’application; si vous avez peu de méthodes, vous pouvez procéder comme suit:
class ApplicationController < ActionController::Base
helper_method :first_method
helper_method :second_method
def first_method
... #your code
end
def second_method
... #your code
end
end
Vous pouvez également inclure des fichiers auxiliaires comme suit:
class YourController < ApplicationController
include OneHelper
include TwoHelper
end
Vous pouvez appeler n'importe quelle méthode d'assistance depuis un contrôleur à l'aide de la commande view_context
, par exemple.
view_context.my_helper_method
La réponse de Ryan Bigg est bonne.
Une autre solution possible consiste à ajouter des aides à votre contrôleur:
class YourController < ApplicationController
include OneHelper
include TwoHelper
end
Meilleures salutations!