71 votes

Pouvons-nous appeler une méthode de contrôleur à partir d'une vue (comme nous l'appelons idéalement à partir d'un assistant) ?

Dans Rails MVC, pouvez-vous appeler une méthode de contrôleur à partir d'une vue (comme une méthode pourrait être appelée appel à partir d'un assistant) ? Si oui, comment ?

154voto

sailor Points 2460

Voici la réponse :

 class MyController < ApplicationController
  def my_method
    # Lots of stuff
  end
  helper_method :my_method
end

Ensuite, à votre avis, vous pouvez le référencer dans ERB exactement comme vous l'attendez avec <% ou <%= :

 <% my_method %>

24voto

Pavling Points 2188

Vous souhaitez éventuellement déclarer votre méthode en tant que "helper_method", ou bien la déplacer vers un helper.

Que font helper et helper_method ?

10voto

Wahaj Ali Points 1897

Je n'ai jamais essayé cela, mais l'appel de méthodes publiques est similaire à :

 @controller.public_method

et méthodes privées :

 @controller.send("private_method", args)

Voir plus de détails ici

9voto

przbadu Points 749

faites votre méthode d'aide à l'action en utilisant helper_method :your_action_name

 class ApplicationController < ActionController::Base
  def foo
    # your foo logic
  end
  helper_method :foo

  def bar
    # your bar logic
  end
  helper_method :bar
end

Ou vous pouvez également effectuer toutes les actions comme méthode d'assistance en utilisant : helper :all

  class ApplicationController < ActionController::Base
   helper :all

   def foo
    # your foo logic
   end

   def bar
    # your bar logic
   end
 end

Dans les deux cas, vous pouvez accéder à foo et bar à partir de tous les contrôleurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X