2
0

More than 3 years have passed since last update.

【Ruby on Rails】deviceで構築したログイン機能のログアウト時、”Couldn't find User with~”のエラーが発生した

Posted at

経緯

Railsのチュートリアルとしてあるアプリを作成している際に、deviceによってログイン機能を実装しようとしたところ、おっと大変、ログアウト時にエラーが発生した。
自分のためにも、解決までの道筋も記しておこうと思う。

環境

Ruby 2.7.3
Rails 6.1.3

エラー内容

スクリーンショット (29).png

Railsお初にしては何事もなく実装が進み、さーてログアウトしてホームページに戻ってみるぞ~と思ったところ、写真のようなエラーが発生した。

試したこと1

ガーン、、、と思いつつ、とにもかくにもエラー内容を見てみると、

""Couldn't find User with 'id'=sing_out""

と出ていたので「idにそんなの渡してないよな???」と思いつつ、idについてのコードをいじってみるが解決せず。
そもそもそれ以外が動いているので、ここではないと判断し次を試すことに。

試したこと2

じゃあルートがミスっているのかと思い、ルート周りを確認してみるも、そもそもそこまで長いコードでもないし、ミスってそうにもない。

タイプミスを疑い、数十分ほど考え倒したが解決しないのでここでネットへ。

解決方法

エラー内容でググると何とびっくり、全く同じエラーでQiitaに記事が!!!
(少し時間の無駄を感じたけれど、考えることは大切?!)

記事によると、sign_outのHttpメソッドがDELETEになっているとGETできないようだ。

そこで、記事にのっとり、config/initializers/devise.rbconfig.sign_out_viaの値をDELETE→GETに編集した。
(結構下のほうに記載してあった)

config/initializers/devise.rb
config.sign_out_via = :get

すると、見事にエラーは解消された。

私のような初学者からすると、このようなエラーは一生解決できないので非常に助かった。
未来のためにも、定期的にエラーの解決法も書いていこうかなと思う。

(記事はこちら)[https://qiita.com/chisaki0606/items/f1f03a6c226e49b5f7b3]

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0