На сайте railstutorial.org есть предложение, которое кажется мне немного странным.
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
include SessionsHelper
делает методы доступными из ApplicationController
, да, но также делает их доступными в любом представлении. Я понимаю, что аутентификация / авторизация является сквозной, но действительно ли это лучшее место?
Это кажется мне потенциально слишком широким. Добавление кода, реализующего, скажем, before_filter
, который выполняет условную переадресацию (как в примере с railstutorial.org), в модуль, который чаще всего содержит помощников представления, кажется удивительным.
Не лучше ли разместить функциональные возможности, не являющиеся строго необходимыми в представлениях, в ApplicationController или где-нибудь еще?
Или я просто слишком много об этом думаю?