2

だから私はDeviseがセットアップされたRailsアプリを持っています。テーブルに:confirmable設定しましたが、Users確認メールの送信は完全に機能します。

ただし、未確認のユーザーがサインインしようとしているという小さな問題が発生しています。

無効な電子メールとパスワードの組み合わせがログインに入力されると、「無効な電子メールまたはパスワード」というフラッシュ通知が表示されます。ただし、未確認のユーザーが正しくサインインすると、ユーザーは にリダイレクトされますが、 で定義されている/users/sign_inのフラッシュ メッセージはありません。"You have to confirm your account before continuing."/config/locales/devise.en.yml

これらのメソッドをオーバーライドしました:

RegistrationsController) :new, :create

SessionsController) :作成

ConfirmationsController) :after_confirmation_path_for

未確認のユーザーが正しい資格情報でサインインした場合、Devise は正確に何をしますか? binding.pryメソッドの先頭にステートメントを入れようとしましたsessions#createが、ヒットしませんでした。つまり、Devise には、これに対する何らかの外部チェックが必要です。ソースコードを調べようとしましたが、役に立ちませんでした。

これはログの状態が起こっていることです:

Started POST "/users/sign_in" for 127.0.0.1 at 2013-10-18 15:04:26 -0400
Processing by SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"03kQgiMGyXcq/nW8jlVyGkGDw1Q9lpP+JZ03e+LZHPU=", "user"=>{"email"=>"dummy@example.com", "password"=>"[FILTERED]"}, "commit"=>"Login"}
  [1m[35mUser Load (0.7ms)[0m  SELECT `users`.* FROM `users` WHERE `users`.`email` = 'dummy@example.com' LIMIT 1
  [1m[36m (0.2ms)[0m  [1mBEGIN[0m
  [1m[35m (0.1ms)[0m  COMMIT
Completed 401 Unauthorized in 90ms


Started GET "/users/sign_in" for 127.0.0.1 at 2013-10-18 15:04:27 -0400
Processing by SessionsController#new as HTML
  Rendered devise/shared/_links.haml (0.6ms)
  Rendered devise/sessions/new.html.haml within layouts/application (5.0ms)
  Rendered layouts/_header.html.haml (0.9ms)
  Rendered layouts/_navigation.html.haml (0.6ms)
  Rendered layouts/_footer.html.haml (0.9ms)
Completed 200 OK in 33ms (Views: 28.0ms | ActiveRecord: 0.0ms)

sessions#createしたがって、メソッドがヒットしているように見えます。だから、ここからどこへ行けばいいのかわからない。どんな助けでも大歓迎です!

config/routes.rb

 devise_for :users, :controllers => {
    :registrations => "registrations", 
    :sessions => "sessions", 
    :confirmations => "confirmations"}
4

1 に答える 1

1

理解した。デバイス内の何かが の下のメッセージの 1 つを呼び出すと:failures、メッセージは flash[:notice] に入れられず、メッセージが flash[:alert] に入れられるので、追加する必要がありました。

#alert= alert

私のハムに。

ソース: Rails + Devise の新規インストールで常に 401 Unauthorized が発生する

于 2013-10-18T20:56:08.697 に答える