2009-10-05 4 views
0

내 레일 로그인 기능에서AJAX partial-Rails에서 전달할 때 request.request_uri 문제

다음 로깅 기능을 사용합니다 :

redirect_to session[:return_to] 

AJAX 함께 부분 렌더링 할 때를 제외하고 잘 작동합니다. 무슨 일이 일어날지는 request.uri는 AJAX 요청에 대한 것이고 예상치 못한 결과를 만들어냅니다.

내가이 문제를 어떻게 풀 수 있는지 알아?

감사합니다.

Tam

답변

0

탐이 당신이 원하는 것을 할 수 있습니다

redirect_to :back 
+0

작동하지 않았다 이러한 중 하나를 결합! 그것은 실제로 사용자를 로그인 페이지에 유지 시켰습니다. – Tam

0

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] 
관련 문제