Можем ли мы вызвать метод контроллера из представления (как мы вызываем из helper в идеале)?
Ну, я знаю, что это не должно быть предложено здесь, но я не нашел лучшего места, чтобы получить ответ. Этот вопрос был задан в интервью хорошей компании.
в Rails MVC, вы можете вызвать метод контроллера из представления (как мы называем от помощника в идеале) ? Если да, то как?
Я не могу ответить на этот вопрос. Не могли бы вы помочь?
4 ответа:
вот ответ :
class MyController < ApplicationController def my_method # Lots of stuff end helper_method :my_method end
возможно, вы хотите объявить свой метод как "helper_method" или альтернативно переместить его в Помощник.
никогда не пробовал это, но вызов открытых методов будет иметь вид:
@controller.public_method
и частные методы:
@controller.send("private_method", args)
Посмотреть подробнее здесь
сделайте свой вспомогательный метод действия с помощью
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
или вы также можете сделать все действия в качестве вспомогательного метода, используя:
helper :all
class ApplicationController < ActionController::Base helper :all def foo # your foo logic end def bar # your bar logic end end
в обоих случаях, вы можете получить доступ к foo и bar со всех контроллеров.