0

何らかの理由で、私のアプリは、間違ったパスワードなど、ログインが失敗した理由に関するエラーを表示する代わりに、失敗したセッションの作成をアプリケーションのルート ページにリダイレクトします。

http 応答をキャプチャしました。

Request URL:http://localhost:3000/users/sign_in
Request Method:POST
Status Code:302 Moved Temporarily

私のコードは次を実行します:

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

URL を user_session_path に変更すると、次のようになります。

Invalid email or password.

ただし、単純なテキストとしてレンダリングされるだけです。

Request URL:http://localhost:3000/users/sign_in.user
Request Method:POST
Status Code:401 Unauthorized

omn​​iauth と cancan gem をインストールしました。どこから探し始めればよいかわからない - 何かアイデアはありますか? (別の注意として、rake ルートにルート セッションが表示されませんが、正しくログインすると、ログインします。これはどのように可能ですか?)

ありがとうございました!

4

1 に答える 1

0

私のアプリのlibフォルダーにCustomFailureクラスがあることがわかりました。これは、ログイン時に常にルートにリダイレクトされます。この失敗したアプリを削除した後、ログインに失敗した後、アプリは私をログイン画面にリダイレクトしました。

Railsによると-デバイス-サインイン時のエラーメッセージ?、エラーはフォームフィールドではなく、フラッシュメッセージに表示されます。したがって、それらをデフォルトのデバイスの新しいセッションビューに含める必要があります。

なぜsession_pathが機能するのか、そしてなぜuser_session_pathが私の質問に投稿された結果を生成するのか、私はまだ理解していませんでした。

于 2012-05-31T08:12:19.820 に答える