Исходя из того, что «получить ответ в Интернете, подать заявку и посмотреть, кто вас исправляет», вот что я получил до сих пор:
Из ссылок, предоставленных luisenrike, видно, что объект cookie объявлен в ActionController, который является суперклассом ApplicationController, который является суперклассом всех реальных контроллеров. Таким образом, он объявляется и инициализируется, когда (в этом случае) SessionsController инициализируется.
Первый вопрос - тот, в котором я менее уверен. Похоже, что все функции в session_helper автоматически рассматриваются как методы в SessionsController.
Таким образом, причина, по которой я могу использовать объект cookie в session_helper.rb, заключается в том, что методы в session_helper находятся в области действия объекта SessionsController, который по наследованию является ActionController, который определяет файлы cookie.
РЕДАКТИРОВАТЬ ДОБАВИТЬ:
Нет, похоже, что SessionsHelper включен в ApplicationController вручную. Таким образом, в этом случае КАЖДЫЙ контроллер приложений имеет доступ к этим функциям ...
хотя кажется, что в ОБЩЕМ FooHelper загружается FooController и Foo Views ...