Ruby好き非エンジニアのブログ

〜Ruby on Railsの学習記録〜

突然ログアウトできなくなった時の対処法〜Couldn't find User with 'id'=sign_out〜

突然ログアウトが出来なくなったときの対処法メモ。
ものすごく簡単に解決できました。

まず、ログアウトしようとした時のエラー画面はこんな感じです。
f:id:Jyoko:20170203065729g:plain

今まで正常に動いていたのに、
いつからだろう…?

とりあえず

Couldn't find User with 'id'=sign_out

と出ているので、早速そのまま検索。

stackoverflowで似たような事例がありそうなので、クリックします。
stackoverflow.com

中を覗いてみると、まず質問が書いてある。
f:id:Jyoko:20170204071242g:plain
サインアウトリンクが機能しなくなっているとのこと。

そして下に行くと何個か回答があります。
今回は下記が参考になりました。
f:id:Jyoko:20170204073537g:plain

ふむふむ。

//= require jquery
//= require jquery_ujs

この順番や表記の仕方によってエラーが出る模様。

早速自分のjavascriptファイルを見てみると

//= require jquery
//= require dropzone
//= require bootstrap-sprockets
//= require jquery-ui/widgets/datepicker
= require jquery-ui/widgets/datepicker-ja
//= require toastr
//= require jquery_ujs
= require turbolinks
//= require_tree .

と記述されています。
この中でまず怪しいところは…

= require jquery-ui/widgets/datepicker-ja
= require turbolinks

の部分。

ここを削除して、ブラウザで再度ログアウトをしてみると…

なんと無事ログアウトできました!
今回はすごい簡単に解決。

通常javascript.jsでは//=が必要ですが、この2つは一時的に使用しないようにしていたので、コメントアウトのつもりで//を省いていました。
それがログアウト部分に悪影響を及ぼしていたようです。

変なことはせず、いらないものはきちっと削除した方が良いですね!


今回もstackoverflowの記事がとても参考になりました。
エラーが出ても焦らず、検索すると大体他の方も同じ経験をしているので、stackoverflow等を活用できるようになるとより楽しくなります♪

まだわからない事多いですが、引き続き進めていきます。

ではでは今日はこの辺で。