Вы должны справиться с этим в вашем контроллере. Маршруты решают, куда идти, а затем контролер должен решить, разрешено ли вам идти туда.
В вашем ApplicationController должен быть метод общего назначения authenticate
, который проверяет, вошел ли кто-то в систему, и перенаправляет его на страницу входа, если это не так. Тогда в вашем конкретном контроллере:
class SomethingController < ApplicationController
before_filter :authenticate
def handler
#...
end
end
Вы можете пропустить аутентификацию для конкретной обработки с опцией :except
:
before_filter :authenticate, :except => [ :this_one, :and_this_one ]
Существуют и другие опции, см. Подробности в разделе фильтров Обзор контроллера действий .