2011-12-30 8 views
0

私はdeviseで動作するようにサインインするのに問題があります。どのようにauthenticate_user!作業?

そう...これはアクションで私の看板に掲示なっているものです:ここで私はそう

def sign_in 
    authenticate_user! 
    if signed_in? 
    redirect_to root_path 
    else 
    redirect_to sign_in_path 
    end 
end 

...私が試したが、動作しないものだ

Started POST "/sign_in" for 127.0.0.1 at 2011-12-30 17:53:14 +0800 
    Processing by UsersController#sign_in as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"k/z12JAUDjFaLtw6X+dL5xa7ZtcLKYmxGSc6SAvaFlE=", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "x"=>"0", "y"=>"0"} 
Completed 401 Unauthorized in 0ms 
    Processing by UsersController#new as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"k/z12JAUDjFaLtw6X+dL5xa7ZtcLKYmxGSc6SAvaFlE=", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "x"=>"0", "y"=>"0"} 
Rendered users/new.html.haml within layouts/application (31.7ms) 
Completed 200 OK in 40ms (Views: 38.8ms | ActiveRecord: 0.9ms) 

私は、この「魔法」が創造からどのように働いているのかを理解していないと思う。物事はあまり抽象的ではないように思えるので、私は虚偽の背後にあるビジネスロジックから隔離されていると感じるので、authenticate_userに伝える方法がわからないので失われてしまいます。私のパラメータから読む。

私の本能は、authenticate_userを検索するように指示します。

しかし、それはどこに定義されていますか?

私はdeviseのドキュメントを簡単に見ていましたが、そこに定義されているメソッドが見つかりませんでした。

+0

あなたは正確に置き換えるために何をしたいですか?たぶん*ログインするものを追加するだけでよいのですが、これは同じ問題ではありません。 – Cydonia7

+0

最終的には、コントローラのリダイレクトを制御するソリューションを実現しようとしています。それが私がこれをやっている理由の全部です。多分この私のアプローチは完全に間違っていますか?とにかく、私は私の質問をより簡潔に言い換えました。 – fivetwentysix

+0

通常のワークフローの外で誰かに手作業でサインインしようとしていますか? –

答えて

0

あなたは(私はあなたが何を意味するのか理解している場合)ログイン/ログアウトまたは編集するプロファイルの後に、独自のリダイレクトを使用したい場合は、私はこのような方法を使用することをお勧め:

class ApplicationController < ActionController::Base 
    private 

    def after_sign_out_path_for(resource_or_scope) 
    root_path 
    end 

    def after_sign_in_path_for(resource_or_scope) 
    root_path 
    end 

    def after_update_path_for(resource_or_scope) 
    root_path 
    end 
end 
関連する問題