Если специфичен к контроллеру, держать его в контроллере.
Если это относится ко всем контроллерам, оно входит в ApplicationController.
Если разделяют некоторые контроллеры и не другие, то наследуют от контроллера, который наследует от ApplicationController или использования включают/продлить или make a module that extendsActiveSupport::Concern
(что Rails использует внутренне довольно часто).
и это лучше держать все в app/controllers
или какой-либо подкаталог, к югу поддиректории и т.д. Rails самозарядные зависит от пути, чтобы совпасть с пространством имен модуля, так A::B::C
принадлежит app/controllers/a/b/c.rb
. Не делайте это глубоким, как Java, и т. Д. Просто имейте количество каталогов/модулей, которые вам нужны, чтобы поддерживать его.
Примечание: хотя контроллеры не так проблематичны в своих модулях, по моему опыту ваши модели должны оставаться в корне, например app/models
, или у вас будут проблемы.
Я также избегаю слишком много хранить в сеансе, если вы можете помочь ему. Храните в БД (или длинные файлы cookie, если это специфическая среда браузера). Например, если кто-то выходит из системы, и они смотрят на одну запись, они могут захотеть снова войти в систему и иметь список, содержащий ссылку на эту запись.
BTW- вы не спрашивали, и, вероятно, уже есть код для хранения недавно посещенных страниц в сессии, но здесь подобные вопросы/ответы:
Если вы вставляете код, о котором говорите, это может облегчить для вас реакцию. – rossta
Я думал об этом, но я больше интересовался концепциями организации кода и файлов и не хотел, чтобы люди увязли в синтаксисе. Спасибо, что ответили! Это мой первый вопрос о StackOverflow :) – manderson