Изменить маршрут с или без входа в Rails - PullRequest
2 голосов
/ 09 июля 2011

Как видно из названия, я хотел бы изменить маршрут в зависимости от того, вошел ли пользователь в систему или нет, аналогично Facebook.Возможно ли это?

1 Ответ

3 голосов
/ 09 июля 2011

Вы не меняете маршрут, вы просто добавляете :before_filter в свой контроллер. Есть несколько способов сделать это, но простой пример - представить ваши корневые точки на homeController#main. В верхней части контроллера у вас есть что-то вроде

before_filter :check_login, :only => {:main}

И тогда в вашем ApplicationController вы пишете метод, подобный

def check_login
    if !session[:userid].nil
        redirect_to :controller => :users, :action => :profile
    end
end

Который проверит вашу переменную сеанса для пользователя и перенаправит на его профиль, если он существует, если нет, то он будет нормально отображать ваш основной метод.

Дополнительная информация и примеры здесь .

...