2013-04-12 3 views
0

현재 사용자로 로그인하면 출신 국가에 관계없이 홈페이지로 연결됩니다. 나는 param을 확인하고 해당 param을 기반으로 리디렉션하고 싶습니다. 내가 매개 변수없이와 일반 로그인 양식을 사용하는 경우, 내가 HOME_URL로 이동 얻을로그인 후 매개 변수를 사용하여 리디렉션

def after_sign_in_path_for(resource) 
    if params['redirect'] == 'SomeParameter' 
     return special_url 
    else 
     return home_url 
    end 
end 

:

여기에 코드입니다./user/login? redirect = SomeParameter로 이동하려고해도 여전히 home_url로 이동합니다. 그건 그렇고, 두 경로 모두 유효합니다 (만약 내가 special_url을 테스트한다면, 잘 작동합니다).

무엇이 누락 되었습니까?

답변

0

로그인하지 않은 경우 홈 페이지가 로그인 양식으로 리디렉션됩니까? 당신이 홈페이지를 가고, 그래서 만약

고안 당신이 로그인을 시도 할 때에 있던 페이지를 저장하고, 로그인 할 때 그것에 리디렉션이.

이의 after_sign_in_path_for보다 우선합니다 => 로그인으로 자동 리디렉션 => 인 경우 after_sign_in_path_for의 반환 값은 중요하지 않습니다.

그런 경우 저장된 위치를 재생하기 위해 stored_location_for (Devise and stored_location_for: how do you store the return location?)와 함께 게임을 할 수 있습니다.

+0

감사합니다. @Joe, 물론 맞습니다. 여전히 문제가 있습니다. 아니오, 집에 로그인 할 필요가 없습니다. 여기 내가 지금까지 가지고있는 것 : 응용 프로그램 컨트롤러에서 내가 가지고있다 def after_sign_in_path_for (리소스) return params [: next] || super end 페이지의 컨트롤러에서 다음 매개 변수를 "/ someurl"로 설정합니다. params를 확인하고 로그인 페이지로 전달되지만 리디렉션은이를 무시하고 그냥 super로갑니다. –

+0

메서드가 호출되고 있습니까? 그냥 "raise 'test'"또는 뭔가를 볼 수 있습니다. –

관련 문제