перенаправить на исходную страницу при входе в ajax - PullRequest
1 голос
/ 11 июля 2011

Я пытаюсь реализовать следующий сценарий:

1) Пользователь не залогинен, а на странице foo. 2) Пользователь нажимает логин на той странице, которая показывает лайтбокс. 3) Пользователь входит через лайтбокс. 4) Страница foo обновляется при успешном входе в систему.

Шаги 1-3 выполнены. На шаге 4 пользователь всегда перенаправляется на страницу своего профиля при входе в систему, ЕСЛИ пользователь входит в систему с помощью этого метода лайтбокса.

У меня логин перенаправляет на страницы, если пользователь пытается получить какую-то страницу, требующую авторизации. Затем пользователь входит в систему и автоматически перенаправляется на ту страницу, на которую пытался перейти пользователь. Но в приведенном выше сценарии пользователь уже находится на странице, и я хочу обновить эту страницу при входе в систему.

Какие-нибудь советы о том, как я могу реализовать вышеизложенное?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 11 июля 2011

Ответом на ваш вопрос будет перенаправление на текущую страницу вместо ее «обновления»:

redirect_to request.url

Но имейте в виду, что это выдаст команду REDIRECT, что означает код состояния 302 (рельсы по умолчанию).Вы можете указать нужный код статуса:

redirect_to request.url, :status => 301

Надеюсь, это поможет!

0 голосов
/ 13 июля 2011

Один вариант, который вы можете легко использовать во многих случаях:

redirect_to :back

Это просто отправляет браузер обратно на страницу, с которой он отправил запрос. Это удобно, когда у вас есть форма, которая появляется в нескольких местах, и вы хотите, чтобы лицо, отправляющее форму, возвращалось на любую страницу, с которой оно отправлялось, а не всегда перенаправляло на определенную страницу (как вы описываете).

0 голосов
/ 11 июля 2011

Создайте форму входа в лайтбокс через ajax (вместо обычной записи). В Rails 3 просто используйте :remote => true в форме. В ответе ajax запустите некоторый javascript, который обновит страницу: window.location.href = window.location.href;

Обратите внимание, что есть много способов выполнить вашу задачу, и это только один из вариантов. Я нашел, что это работает хорошо для меня на моем сайте: http://www.tmatthew.net/blog

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...