2

Devise を使用してアプリケーションの認証を実行しましたが、非認証の失敗として検出される Devise のログアウト メッセージを除いて、すべて問題ありません。

en.devise.failure.unauthenticated: " You need to sign in or sign up before continuing "

「サインアウトに成功しました」というメッセージではなく、ログアウトしたときにこのメッセージが表示されることを意味します。

たぶん、Devise システムを誤ってパーソナライズしたのでしょう。私が作成したパーソナライズは次のとおりです。

1/ 独自のセッション コントローラーを使用して、デフォルトの Devise セッション コントローラーをオーバーライドしました。私の唯一の目的は、特別なアクセス (ログイン/サインアップ) レイアウトを選択することです。

class SessionsController < Devise::SessionsController

    layout 'access'

end

もうコードはありません。にある特別なログイン/サインアップ デザインを使用してレンダリングしたかっただけviews/layouts/access.html.hamlです。

もちろん、これをroutes.rbファイルに追加しました:

devise_for :users, :controller => { :sessions => 'sessions' }

2/Deviseに別の言語(フランス語)を選択したので、ダウンロードしてフォルダにdevise.fr.yml貼り付け、ファイルconfig/locales/に設定config.i18n.default_locale = :frしましたconfig/application.rb

他のすべての Devise アクション メッセージは正しいです。「サインアウト」だけは困ります。何か案が?

前もって感謝します。

4

2 に答える 2

6

セッションコントローラーを継承せずにデバイスのカスタムレイアウトを処理する方法があるようです。このドキュメントを見てください:

https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts

編集

ユーザーがサインアウトした後にサインイン ページにリダイレクトするには、これをアプリケーション コントローラーに追加します。

def after_sign_out_path_for(resource_or_scope)
  sign_ins_path
end
于 2012-08-27T13:15:32.017 に答える
0

Devise はサインアウト要求に http DELETE 要求を使用します。必ずこのリンクでサインアウトしてください。<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>

于 2012-08-27T11:43:28.513 に答える