2011-12-28 2 views
0

중첩 된 리소스가있는 앱이 있습니다. 내 경로는 다음과 같습니다레일 중첩 된 장치 리디렉션

내 블로그 컨트롤러에서
resources :teams do 
    resources :blogs 
end 

, 메신저 컨트롤러에

layout "teamlayout" 

를 추가하여, 다른 레이아웃을 사용하여. 두 레이아웃 모두 application.html.erb 및 teamlayout.html.erb에는 로그인 양식 자체가 포함되어 있습니다. 나는 이것으로 일을했다 : https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

지금 내 질문. 사용자가 로그인 할 때, 나는 그에게 그가에서 로그 곳에서 페이지로 이동합니다

답변

0

당신은 몇 가지 옵션이 있습니다.

가 로그인의 소스 (설명 로그인 폼의 숨겨진 필드 값을 포함을 예 : hidden_field_tag(:login_source, "team")) 숨겨진 필드 값을 사용하여 response_with의 위치를 ​​결정하는 SessionsController # create에 대한 논리를 정의하십시오. 당신이 그런

def store_location 
    session['saved_location'] = request.request_uri 
end 

같은 작업을 수행하여 로그인 형태의 컨트롤러에 before_filter를 사용하여 사용자의 위치를 ​​추적 할 수

또는, 당신은 당신의 응용 프로그램 컨트롤러에 after_sign_in_path_for (자원) 메소드를 오버라이드 (override) 할 수 있습니다 세션의 saved_location 값을 사용하여 리디렉션 할 위치를 결정합니다.

두 번째 옵션은 나에게 Devise 인프라에 대한 침해가 덜한 것 같지만 약간 융통성이 있습니다.

+0

thx! 나를 도와 주었다 :) – malice