Аутентификация - деликатная область, и это один из аспектов, где разработчики продолжают изобретать велосипед. Я бы посоветовал вам использовать готовую библиотеку или плагин для этого. В частности, я бы рекомендовал использовать плагин Authlogic .
Он работает как плагин, поэтому ни сгенерированный код, ни навязчивые вещи не попадают в ваше приложение.
В ответ на ваш вопрос проверка ограничения доступа должна выполняться в контроллере с помощью before_filter и проверки того, какое действие они собираются выполнить. (Метод filter передается экземпляру контроллера и, следовательно, ему предоставляется доступ ко всем аспектам контроллера, и он может манипулировать ими по своему усмотрению)
Однако, используя плагин, который я упомянул выше, это будет так же просто, как
before_filter :require_user, :except => [:list]
это потребует входа в систему для всех действий в контроллере, кроме действия со списком