Подтвердить что ты не робот

Можно ли вызвать метод Controller из представления (как мы обычно называем хелпера)?

Хорошо, я знаю, что здесь не следует спрашивать, но я не нашел лучшего места для ответа. Этот вопрос был задан в хорошем интервью компании.

В Rails MVC вы можете вызвать метод контроллера из представления (как мы в идеале вызываем из помощника)? Если да, то как?

Я не мог ответить на этот вопрос. Не могли бы вы помочь?

4b9b3361

Ответ 1

Вот ответ:

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

Ответ 3

Никогда не пробовал это, но вызов общедоступных методов аналогичен:

@controller.public_method

и частные методы:

@controller.send("private_method", args)

Подробнее здесь

Ответ 4

сделайте свой помощник действий с помощью 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 от всех контроллеров.