Dans Rails MVC, pouvez-vous appeler la méthode d'un contrôleur à partir d'une vue (comme une méthode pourrait être appelée l'appel d'un assistant)? Si oui, comment?
Voici la réponse:
class MyController < ApplicationController
def my_method
# Lots of stuff
end
helper_method :my_method
end
Ensuite, selon vous, vous pouvez le référencer dans ERB exactement comme vous l'attendez avec <%
ou <%=
:
<% my_method %>
Vous pouvez éventuellement déclarer votre méthode en tant que "helper_method", ou bien la déplacer vers un helper.
Je n'ai jamais essayé cela, mais appeler des méthodes publiques est similaire à:
@controller.public_method
et méthodes privées:
@controller.send("private_method", args)
Voir plus de détails ici
créez 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.