Это философский вопрос на том же уровне, что и аргумент, который ставит под сомнение метод REST, предоставленный в скаффолдинге, и стоит ли вообще использовать скаффолд.Вы должны учитывать тот факт, что учебное пособие в RailsTutorial.org является инструктивным руководством по Rails.Так что для цели, которую он выполняет, я думаю, что он выполняет свою работу.
Однако, есть ли лучшее место для размещения кода, необходимого между контроллерами и представлениями?Да, есть.
- Некоторые могут следовать Railstutorial от Michael Hartl и включать все
SessionHelper
в ApplicationController
- Другие могут решить выставить только основных помощников, необходимых для представления, т.е.
sign_in
, sign_out
, current_user
и т. П. - Я вижу предложение поместить такой код в каталог
/lib
и включить его при необходимости.
Всежизнеспособные варианты.Что бы вы ни выбрали, производительность может не иметь большого значения, потому что Ruby придется анализировать файл, из которого вы хотите вызвать (или включить) класс, модуль или метод.Что происходит, прежде чем какой-либо код выполняется в классе, Ruby один раз просматривает весь класс, чтобы узнать, что в нем.Все зависит от того, что нужно, и дизайна их приложения