2011-11-10 26 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 

私はApplicationControllerafter_sign_in_path_forを使用してみました:

def after_sign_in_path_for(resource_or_scope) 
    Rails.logger.info "***** LOGGED IN, GOING TO #{root_path}" 
    root_path 
end 
しかし、ログエントリも表示されません

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ファイルです。

これはなぜ起こるのでしょうか?

答えて

6

このようなことが起きている可能性があります:user_session_path(user)で、実際には引数としてユーザーを必要としないため、Railsはこれをフォーマットとして扱います。これは、サインインビューのform_forコールで間違っている可能性があります。 after_sign_in_path_forは呼び出されていません。なぜなら、Railsは指定されたURLに有効なリクエストを考慮していないからです。

+0

Nada como falar direto com fonte、né?ありがとう。 – kolrie

関連する問題