2014-08-30 1 views
0

응용 프로그램을 사용하면 세션 데이터를 생성하는 다양한 작업을 수행 할 수 있습니다. 그런 다음 사용자는 해당 데이터를 기반으로 트랜잭션을 실행하려고 할 수 있습니다. 로그인 또는 가입이 필요합니다.기존 세션 데이터를 유지하기위한 인증 작성

Devise의 세션 컨트롤러는 새 세션을 만들어 모든 데이터를 버립니다. 쿠키에 데이터를 쓰는 것보다 기존 세션 데이터를 유지 관리 할 수있는 간결한 기술을 찾지 못했습니다.

after_sign_in_path_for(resource)

은 사용자가

콘텍스트 3.2.18 레일 이전 페이지로 돌아 세션 컨트롤러 가능 겹쳐 2.2.4

답변

0

고안 할 수있다. 다음과 같은 다양한 PARAM 설정이 이월 될 수 있으며, 사용자가 이전 페이지의 다시 가져,이 문맥이 문맥 다른 진입 점 (confirm_transaction_url 대 generic_url)를 가지고 있음을 감안할 때/그는 응용 프로그램 컨트롤러는

class SessionsController < Devise::RegistrationsController 

    def destroy 
    param1  = session[:param1] unless  session[:param1].nil? 
    param2  = session[:param2] unless  session[:param2].nil? 
    confirm_url = session[:confirm_url] unless session[:confirm_url].nil? 
    previous_url = session[:previous_url] unless session[:previous_url].nil? 
    super 
    session[:param1] = param1 
    session[:param2] = param2 
    session[:confirm_url] = confirm_url 
    session[:previous_url] = previous_url 
    end 
end 

에 것이었다 사용자를 루트로 지정하십시오.

def after_sign_in_path_for(resource) 
    session[:previous_url] || session[:confirm_url] 
end 

답변은 색인 목적으로 게시되었습니다. 포인터 덕분에 onemanarmy