3

この質問に従いました ログイン失敗後のデバイスリダイレクトはうまく機能しますが、続行するにはログインする必要があることを知らせるフラッシュ通知が表示され、必要なメッセージはパスワードまたは電子メールが無効であるということです. そこで、次のように CustomFailure にフラッシュ通知を追加しました。

    class CustomFailure < Devise::FailureApp
  def redirect_url
    root_path
  end

  def respond
    if http_auth?
      http_auth
    else
      flash[:error] = I18n.t(:invalid, :scope => [ :devise, :failure ])
      redirect
    end
  end
end

そして今、無効なパスワードと認証されていないメッセージの両方が表示されています。認証されていないメッセージを削除するにはどうすればよいですか?

4

1 に答える 1

1

Devise は を設定しませんflash[:error]flash[:alert]、ログインに失敗した場合は、アプリケーションでこれを設定してみてください。

メソッドを上書きしてDevise::FailureApp#i18n_message、選択したメッセージを返すようにすることもできます。

class CustomFailure < Devise::FailureApp
  def redirect_url
    root_path
  end

  def i18n_message
    "Hello World" # you might go for something more elaborate here
  end
end
于 2013-01-15T19:14:58.460 に答える