2011-11-10 4 views
2

나는 Devise를 사용하는이 응용 프로그램을 가지고 있으며 로그인 후에 사용자는 경로 /users/sign_in.user이있는 빈 페이지로 리디렉션됩니다.Devise로 로그인 한 후 이상한 리디렉션

왜이 경로로 리디렉션됩니까? 내가 사용 시도

MyApp::Application.routes.draw do 
    root :to => "site#home" 
    match 'biblioteca' => 'site#library', :as => :library 

    devise_for :users, :controllers => { :sessions => "users/sessions" } 
    devise_for :admin_users, ActiveAdmin::Devise.config 

    ActiveAdmin.routes(self) 

    resources :cursos 
    resources :matriculas 
    resources :modulo_statuses 
end 

after_sign_in_path_forApplicationController에서 :

Started POST "https://stackoverflow.com/users/sign_in.user" for 127.0.0.1 at 2011-11-10 15:56:03 -0200 
    Processing by Users::SessionsController#create as 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"ukqyLFgApCSybuIlVynPwj/xgdI/WuHLxoFxOsY4wgQ=", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Entrar"} 
    User Load (1.8ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = '[email protected]' LIMIT 1 
    (0.2ms) BEGIN 
    (1.0ms) UPDATE `users` SET `last_sign_in_at` = '2011-11-09 18:47:04', `current_sign_in_at` = '2011-11-10 17:56:04', `sign_in_count` = 14, `updated_at` = '2011-11-10 17:56:04' WHERE `users`.`id` = 1 
    (0.3ms) COMMIT 
Completed 406 Not Acceptable in 112ms 

여기 내 전체 routes.rb 파일입니다 : 여기 로그 항목을 얻을 것

def after_sign_in_path_for(resource_or_scope) 
    Rails.logger.info "***** LOGGED IN, GOING TO #{root_path}" 
    root_path 
end 

그러나 로그 항목도 표시되지 않습니다 .

왜 이런 일이 일어나는 지 아는 사람이 있습니까?

답변

6

이 문제는 아마도 user_session_path(user)이며 실제로 사용자를 인수로 지정할 필요가 없기 때문에 발생합니다. 따라서 레일스는이를 형식으로 처리합니다. 로그인 화면에서 form_for 통화가 잘못된 것 같습니다. after_sign_in_path_for은 Rails가 지정된 URL을 유효한 요청으로 간주하지 않기 때문에 호출되지 않습니다. (그 이유 때문에 응답이 허용됩니다).

+0

Nada como falar direto com fonte, né? José 감사합니다! – kolrie

관련 문제