Проблема с request.request_uri при пересылке из AJAX частично - Rails - PullRequest
1 голос
/ 05 октября 2009

В моей функциональности входа в Rails я использую

session[:return_to] = request.request_uri

и затем в функциональности регистрации я использую:

redirect_to session[:return_to]

Что отлично работает, за исключением случаев, когда я рендерим партиал с AJAX. Что происходит, так это то, что request.uri предназначен для запроса AJAX, который облажается и не отображает ожидаемого.

Вы знаете, как я могу обойти это?

Спасибо

Tam

Ответы [ 2 ]

0 голосов
/ 03 июня 2010

request.request_uri действительно будет для AJAX URI. Единственное решение, которое я нашел, - это чтобы ваши AJAX-запросы (или, по крайней мере, те, которые могут вызвать перенаправление на страницу входа в систему) включали URI всей страницы, например

form_remote_for ... do |f|
    hidden_field_tag :this_page, request.request_uri
    # only works if this view itself is not loaded over AJAX!

или для более универсального подхода:

form_remote_for :html => {:onsubmit => '$("this_page").value = window.location'}, ... do |f|
    hidden_field_tag :this_page, request.request_uri
    # non-JS clients just end up with the value given here

Объедините любой из них с

# in the login action
session[:return_to] = params[:this_page]
0 голосов
/ 05 октября 2009

Это может делать то, что вы хотите:

redirect_to :back
...