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

Контроллер helper_method

Мне было интересно, почему кто-то должен использовать helper_method внутри контроллера для создания вспомогательного метода вместо создания "нормального" способа, который находится внутри вспомогательного файла. Каковы плюсы и минусы этого?

4b9b3361

Ответ 1

helper_method полезен, когда функциональность - это то, что используется как между контроллером, так и с представлением. Хорошим примером является current_user.

Если метод больше связан с логикой контроллера, а не форматированием, то он принадлежит контроллеру. Что-то вроде current_user будет разделяться между всеми контроллерами, поэтому оно должно быть определено в ApplicationController.

Истинные методы "помощника" относятся к представлению и обрабатывают такие вещи, как форматирование и логика шаблонов. Они редко нужны в контроллере, и они принадлежат их собственному модулю под приложением/помощниками. Вы можете включить их в свой контроллер, когда это необходимо, но в итоге вы получите доступный для вашего контроллера метод поддержки класса, доступный вашему контроллеру.

Ответ 2

для обмена методами между контроллером и представлением у вас есть несколько вариантов: