2011-10-25 2 views
2

가입 후 사인 기능을 수행하려면 어떻게해야합니까? 로그인 할 때마다 응용 프로그램 컨트롤러에 이와 같은 기능을 넣으려고했습니다. 이Devise 가입 기능

devise_for :users do 
    get "https://stackoverflow.com/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session 
end 

처럼 내 경로로

class ApplicationController < ActionController::Base 
    private 
    def after_sign_up_path_for(resource_or_scope) 
    execute stuff 
    end 
end 

이 아무것도하지 않는 것. 나는 또한이뿐만 아니라 아무것도하지 않는 것이

devise_for :users, :controllers => {:sessions => 'devise/sessions'} do 
    get "https://stackoverflow.com/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session 
end 

같은처럼 내 경로로

class SessionsController < Devise::SessionsController 
    functions 
end 

을 세션 컨트롤러를 만드는 시도, 내가 반응 고안 제작에 누락 무언가가있다 . 당신은 Devise::SessionsController에서 상속 자신의 sessions_controller를 생성하고 사용자 정의하고자하는 작업을 재정의 할 수 있습니다

+0

수행하려는 작업과 실패한 작업에 대해 자세히 설명해 주시겠습니까? –

답변

7

) https://github.com/fortuity/rails3-subdomain-devise/wiki/Tutorial-(Walkthrough (나는 처음에이 자습서를 사용하여 유증을 설정). 예를 들어, 당신이 할 수있는 사용자가 로그인 한 후 몇 가지 작업을 수행합니다 : super를 호출하면 충분하지

class SessionsController < Devise::SessionsController 
    def create 
    super 
    perform_custom_stuff 
    end 
end 

경우에, 당신은 당신의 컨트롤러에 Devise::SessionsController#create의 현재 구현을 재현 할 수있다. 그런 다음 상황에 대한 완전한 제어권을 가지며 정확한 요구에 맞게 사용자 정의 할 수 있습니다. 이것은 가장 좋은 해결책은 아니지만 필요한 경우 일 수 있습니다 (적어도 계속해서).

+0

내가 redirect_to 'www.google.ca'라고 말하면, 내 물건에 반응이 없다. 다른 것들도 마찬가지다. – Kevin

+0

구체적으로 render json : resource_name을하고 싶다. to_json, : callback => params [: callback]을 사용하여 가입시 JSONP 배열을 가져옵니다. 문제가되는 방식은 세션을 수정하기 위해 무엇이든 입력 할 때마다 로그인 또는 가입 할 때 아무 것도하지 않을 것입니다 (로그인 한 후 기본 페이지로 이동하고 수정하지 않은 것처럼 행동합니다) – Kevin

+0

당신의 경로에있는 케빈은 당신이 아니라 당신의 세션 컨트롤러를 사용하도록 devise에게 말하고 있습니다. 당신의 경로를 바꾸는 @Mike Mazur의 조언을 따르고 그것은 챔피언처럼 작동해야합니다. – janders223

0

난 그냥 after_sign_up_path_for 및 유사한 방법은 경로를 반환하기위한 것입니다 언급하고 싶었을뿐입니다. 나는 부작용에 대한 그런 종류의 방법에 의지하는 것이 좋은 생각이라고 생각하지 않습니다.

관련 문제