todolists_controller.rb
の17行目のdef
の前のスペースが全角スペースになっていませんか?
このエラーメッセージを見ると、
undefined local variable or method 'show' for TodolistsController:Class
と書かれています。これは「TodolistsController
」というクラスにshow
というメソッドは定義されておらず(== undefinedの意味)、しかしそれを呼び出すようなコードを書いてしまっている、という意味です。
また、エラー画面を見ると app/controllers/todolists_controller.rb:17:in ....
のような出力が2行出ています。これは「バックトレース」や「スタックトレース」と呼ばれるものです。意味は調べると見つかると思いますが、大雑把に言うとエラーが起きたファイルの位置を表しています。
つまり、このエラーはtodolists_controller.rb
の17行目で起きています。
そこでコードを見てみると、17行目には def show
と書かれています。
これは普通のメソッド定義に見えますが、よく見ると他のdef
の直前には2つあるスペースを表す灰色の点が、この17行目のdef
の直前には1つしかありません。
つまり、この17行目のdefの前には1つの全角スペースが入っていて、そのせいでdef show
が「メソッド定義」ではなく「showというメソッドの呼び出し」だと思われてしまったのでしょう。
エラーの解決時にはバックトレースを見て、問題となっている行になにかおかしなことがないかまず確認してみるのが良いかなと思います。また、初心者のうちは全角スペースを入れてしまいがちなので、何かそれを防ぐような仕組みを調べて設定したり、まず全角スペースが入ってないか疑うようにしても良いかもしれません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/30 12:56