Posted at

Ruby on Railsで”undefined method `each' for nil:NilClass”エラーが出た時の対処法

More than 1 year has passed since last update.


環境・状況


症状

構築した画面の動作確認にて下記エラー発生

NoMethodError in Tasks#index

Showing /home/ec2-user/environment/rails_projects/todo/app/views/tasks/index.html.erb where line #3 raised:

undefined method `each' for nil:NilClass
Extracted source (around line #3):
1 <h1>ToDoアプリ</h1>
2 <ul>
3  <% @tasks.each do |task| %>
4  <li>
5  <%= check_box_tag '','' %>
6  <%= task.title %>
Rails.root: /home/ec2-user/environment/rails_projects/todo

エラー部分は

undefined method `each' for nil:NilClass


原因

繰り返し処理の対象である@tasksの中身がnilである。


解決策

コントローラーファイルであるTasks_controller.rb内のスペルミス

class TasksController < ApplicationController

def index
@taskes = Task.all
   ^^^^^^ ※”Tasks”ではなく”Taskes”とスペルミス。
end
end


参考

エラーfor nil:NilClassについて


nil(他の言語ではnullということも多い、「何もない」という特殊なオブジェクトです)に対してメソッドを実行しようとすると、表記のような「NilClassにメソッドがない」旨のエラーになります。