LoginSignup
ishimoto12
@ishimoto12

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

NameError in TasksController#index

スクリーンショット 2024-02-21 22.33.33.png

railsでスケジュール管理アプリを作りたいです。
どうすればこのエラーを解決できますか?
初心者なのでわかりやすく教えて頂けると助かります。
よろしくお願いします。

0

1Answer

はじめまして.Railsは未経験ですが,フレームワーク特有の問題ではないようなので回答させていただきます.

エラーの内容の整理

画像ではタイトルに NameError in TaskController#index とありますが,これは 「TaskControllerのindexでNameErrorが発生しました」 という意味になります.詳しいことは存じませんが,使われている変数や定数などの名前がおかしいということが示されています.
また,in TaskController#index という記述から,TaskControllerクラスのindexメソッドの部分でエラーを検知したことが分かります.実際,コードのindexメソッドに含まれる行@task = Task.allが赤く表示されています.

ここで,タイトル下の uninitialized constant TaskController::Task に着目します.これは 「TaskController::Task(TaskControllerクラスの定数Task)は初期化されていない定数です」 といった意味になります.
このことから,定数TaskがTaskControllerファイル内で初期化されていない(定数そのものが宣言されていない,あるいは最初に持つ値が設定されていない)ためにエラーが起きていることが分かります.

エラーの解決方法(予想です)

本題の解決方法ですが,Task = 定数Taskに入れたい値のような記述をTaskControllerあるいはApplicationControllerに追加するとエラーが解決できるかと思います.
そして,定数Taskに入れたい値に何を入れるかですが,Task.allという記述を見るにTaskは配列として使いたいとお考えなのではないかと思います.なので,Task = ["掃除", "洗濯", "料理"]のような記述をindexメソッドの手前に追加します(配列の中身は一例です).

以上を基にTaskControllerのエラー発生箇所を書き換えると,以下のようになります.

rails
class TaskController << ApplicationController
  Task = ["掃除", "洗濯", "料理"]

  def index
    @tasks = Task.All
  end

長々と予想を立てて書いてみましたが,解決のお役に立てれば幸いです.

0

Your answer might help someone💌