2012-04-07 12 views
9

내가 기본 URL (myapp_url)로 리디렉션을 위해 무엇을 가지고 원래의 요청 URL로 리디렉션합니다. 하지만 리디렉션을 변경하여 인증 후에 사용자가 URL을 요청한 것으로 이동하려고합니다. 어떻게하면됩니까? 나는 여기에서 검색에서 몇 가지 옵션을 시도했다. 그러나 가지 마라.루비 레일 - 여기서

사용자는 인증 로그인 사용자가 원래의 요청 URL로 리디렉션되어야 다음 후, 로그인 페이지로 리디렉션됩니다없는 경우 URL을 입력합니다.

+0

솔루션을 찾았습니까? –

+0

@ Aldo'xoen'Giambelluca - 아직 없습니다. –

+0

이 솔루션은 나를 위해 일했습니다 : http://stackoverflow.com/questions/9835365/devise-how-to-redirect-to-different-page-based-on-some-parameter-after-sign-in – rassom

답변

1

인증시 리디렉션 전에 경로를 저장하고 인증 성공 후이 경로로 리디렉션해야합니다.

+0

이것을 시도했지만 행운이 없습니다. 'session [: return_to] || = request.referer'' redirect_to session [: return_to]' –

12

당신은 당신이 쉽게 구현할 수있는 방법을 보려면 마이클 하틀로 "레일 튜토리얼에 루비"에 the chapter about "Friendly forwarding"를 읽을 수 있습니다. 위치를 설정하지 않을 경우, 세션에 저장된 위치로 사용자를 리디렉션 또는 세션

  • redirect_back_or(url)의 위치를 ​​원하는 사용자를 저장하는

    1. store_location :

      은 기본적으로 당신은 3 개 헬퍼 메소드를 정보의 조각을 지우려면 redirect_back_or 방법으로 "내부적으로"사용 url 방법 PARAM

    2. clear_return_to에 포함 된 한 번
    을 사용 당신이 게스트 사용자는 로그인 페이지로 그를 리디렉션하기 전에 인증 사용 store_location을 필요로하는 페이지에 액세스하려고 볼 때

    A) : 6,

    그리고는 이러한 방법을 사용합니다. 사용자가 로그인
    B)는, 당신은 물론 현재는)

    이이 일, 당신은 아이디어를 얻을 방법에 대한 개요 인 경우 (오른쪽 위치로 그를 리디렉션 redirect_back_or(url)를 사용하지만 나는 그것을 읽을 제안 구현 (몇 가지) 세부 정보 장.

  • +0

    게시물 요청으로 이것을 구현할 수 있습니까? 제출하기 전에 양식을 제출하고 세션이 만료되었다고 가정 해보십시오. Michael Hartles 예제는 라우팅 오류를 일으 킵니다. 레일스는 로그인 한 후 Rails가 요청을 시도 할 것이라고 생각합니다. 예를 들어, 게시물 아래에 주석이 중첩되어 있고 게시물 # 쇼에서 의견 제출이 이루어지는 '게시물'과 '의견'이 있다고 가정 해보십시오. 로그 인한 후의 결과 URL은 라우팅 오류를 일으키는'app.com/posts/1/comments'이며 요청이 POST 일 경우에는 그렇지 않습니다. – Mohamad

    +1

    리디렉션은 브라우저에서 GET 요청으로 전송됩니다. POST로 리다이렉트 (redirect) 할 브라우저가 있어도 원본 양식 제출 데이터는 제공되지 않습니다. – kgilpin

    +0

    답변의 튜토리얼 링크가 죽었습니다. 업데이트 된 링크는 다음과 같습니다. https://www.railstutorial.org/book/_single-page#sec-friendly_forwarding – Nilloc