2012-09-26 4 views
0

저는 Rails에 처음으로 익숙해졌습니다. 그래서 Railscasts를 따라 속도를 높이고 로그인 기능을 성공적으로 만들었습니다. 다음과 같이 코드는 다음과 같습니다 그러나Rails에서 성공적으로 로그인 한 후 리디렉션

def create 

    user = User.find_by_email(params[:email]) 
     if user && user.authenticate(params[:password]) 
     if params[:remember_me] 
      cookies.permanent[:auth_token] = user.auth_token 
     else 
      cookies[:auth_token] = user.auth_token 
     end 
     redirect_to root_url, :notice => "Logged in!" 

     else 
     flash.now.alert = "Invalid email or password" 
     render "new" 
     end 

    end 

의 코드와 같이 root_url로 표시된 바와 같이, 사용자는 항상 홈 페이지로 리디렉션됩니다. 내가 달성하고 싶은 무엇

는 다음과 같은 라인을 따라 뭔가 :

사용자는 "정보", "연락처"또는 어떤 페이지 사용자는이 "로그인"을 클릭
  • 링크에
    1. 로그인 양식 페이지로 이동합니다
    2. 성공적으로 (또는 성공적으로) 로그인하지 않으면 사용자는 이 "정보", "연락처"페이지 등으로 반환됩니다.

    그러나 나는 root_url을 대체해야하는 것을 해결할 수 없습니다. 나는 request.referer을 시도했지만 이것은 분명히 사용자가 처음에 로그인 양식에 액세스 한 페이지가 아니라 로그인 양식 (또는 오히려, 이미 로그인되었음을 나타내는 메시지)으로 되돌아갔습니다.

    나는 어떤 종류의 스위치/케이스를 할 수 있다고 생각하는데, 나는 문자열이나 뭐든간에 참조 페이지를 저장하고 다시 리다이렉트하지만, 이것은 약간은 어설프하고 (레일스처럼) 내가 누락 된 쉬운 방법이 있는지 확실해!

    감사합니다.

  • 답변

    0

    당신은, 당신이 here을 참조 할 수 있습니다 세션에서 return_to 저장할 수 here

    관련 문제