Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask question.(5)

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

ITtutoria

ITtutoria Logo ITtutoria Logo

ITtutoria Navigation

  • Python
  • Java
  • Reactjs
  • JavaScript
  • R
  • PySpark
  • MYSQL
  • Pandas
  • QA
  • C++
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Python
  • Science
  • Java
  • JavaScript
  • Reactjs
  • Nodejs
  • Tools
  • QA
Home/ Questions/Fixing the error: undefined method `each' for nil:nilclass
Next
Answered
Callan Singh
  • 18
Callan Singh
Asked: May 18, 20222022-05-18T18:12:01+00:00 2022-05-18T18:12:01+00:00In: Programs

Fixing the error: undefined method `each’ for nil:nilclass

  • 18

. Advertisement .

..3..

. Advertisement .

..4..

As advised, I used some code samples in another forum, but it could not improve the problem. My question is the “undefined method `each’ for nil:nilclass” in programs – How to solve it?

The command line is:

<th>Text</th>
  </tr>
  <% @posts.each do |post| %>

and the result:

Started POST "/posts" for 127001 at 2013-12-25 22:42:04 +0800
  Processing by PostsController#create as HTML Parameters:
  {"utf8"=>"✓", "authenticity_token"=>"CLalUww3gqnSlED0AWdou6P/U2qya
  vPqDiBANQOuYgA=", "post"=>{"title"=>"11", "text"=>"22"},
  "commit"=>"Save Post"} (0.0ms) begin transaction (0.0ms) 
  rollback transaction Redirected to http:// 127001:3000/posts
  Completed 302 Found in 16ms (ActiveRecord: 0.0ms)
  
  Started GET "/posts" for 127001 at 2013-12-25 22:42:04 +0800
  Processing by PostsController#index as HTML Rendered
  posts/index.html.erb within layouts/application (15.6ms) Completed 500
  Internal Server Error in 31ms
  
  ActionView::Template::Error (undefined method `each' for
  nil:NilClass):
 
  <th>Text</th>
  </tr>
  <% @posts.each do |post| %>
 
  
  ======================================================

What does the message mean? Can you advise me to fix it? If you have other better answers, leave them in the answer box below.

undefined method
  • 2 2 Answers
  • 174 Views
  • 0 Followers
  • 0
Answer
Share
  • Facebook
  • Report

2 Answers

  • Voted
  • Oldest
  • Recent
  • Random
  1. Best Answer
    hdtutoria Expert
    2022-06-13T12:10:33+00:00Added an answer on June 13, 2022 at 12:10 pm

    The cause: This problem occurs because you’re calling each method on something here(@posts) which is nil. This indicates that you haven’t defined it in your controller.

    Solution: To solve this error, @posts must be defined in your posts controller.

    # app/controllers/posts_controller.rb
    class PostsController < ApplicationController
      def index
        @posts = Post.all
      end
    end

     

    • 5
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report
  2. Adam Andre
    2022-05-25T20:44:02+00:00Added an answer on May 25, 2022 at 8:44 pm

    This error can be explained in more detail if you are unable to identify it.

     undefined method `each' for nil:NilClass

    This error indicates that you are calling each method here (@posts), which is null. This means that you have not defined it in the controller. It is complaining about an undefined method for nil because you didn’t define the class.

    You should always double-check the instance variable you are calling from your view. To make it accessible from views, you will need to create that controller.

    This error can also be thrown if you try to call a private method from your controller.

    • 18
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

Sidebar

Ask A Question
  • How to Split String by space in C++
  • How To Convert A Pandas DataFrame Column To A List
  • How to Replace Multiple Characters in A String in Python?
  • How To Remove Special Characters From String Python

Explore

  • Home
  • Tutorial

Footer

ITtutoria

ITtutoria

This website is user friendly and will facilitate transferring knowledge. It would be useful for a self-initiated learning process.

@ ITTutoria Co Ltd.

Tutorial

  • Home
  • Python
  • Science
  • Java
  • JavaScript
  • Reactjs
  • Nodejs
  • Tools
  • QA

Legal Stuff

  • About Us
  • Terms of Use
  • Privacy Policy
  • Contact Us

DMCA.com Protection Status

Help

  • Knowledge Base
  • Support

Follow

© 2022 Ittutoria. All Rights Reserved.

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.