誰でも簡単にユーザー管理機能が作れるGemの
deviseを導入した後のエラーの解決方法を
備忘録として書き留めておきます。
本来ならログアウトする際にpathの記入と
methodの記入だけでログアウトできるはずが、
エラーが立ち塞がった。
いつもは下記の記述ででエラーなんか起きたことなかったのに...
<%= link_to 'ログアウト', destroy_user_session_path, method: :delete, class: "logout" %>
エラー内容はスクショし忘れましたが、
翻訳に履歴が残っていました。
Could not find devise mapping for path "/users/sign_out". This may happen for two reasons: 1) You forgot to wrap your route inside the scope block. For example: devise_scope :user do get "/some/route" => "some_devise_controller" end 2) You are testing a Devise controller bypassing the router. If so, you can explicitly tell Devise which mapping to use: @request.env["devise.mapping"] = Devise.mappings[:user]
パス「/ users / sign_out」のデバイスマッピングが見つかりませんでした。 これは2つの理由で発生する可能性があります:1)スコープブロック内にルートをラップするのを忘れた。 例:devise_scope:user do get "/ some / route" => "some_devise_controller" end 2)ルーターをバイパスするDeviseコントローラーをテストしています。 その場合、使用するマッピングをDeviseに明示的に指示できます。@ request.env ["devise.mapping"] = Devise.mappings [:user]
正直なんのこっちゃわかりません。(泣)
とりあえず、
##解決方法
config.sign_out_via = :get
大体269行目の記述。
ここは元々、deleteと書かれていたのを
getに直すことで、読み込みが上手く行くようになりました。