# undefined method \`each' for \*\*\*:Class  PROBLEM

**URL:** <https://discuss.rubyonrails.org/t/undefined-method-each-for-class-problem/14879>\
**Category:** rubyonrails-talk\
**Created:** [June 25, 2007, 5:20pm UTC](https://discuss.rubyonrails.org/t/undefined-method-each-for-class-problem/14879 "2007-06-25T17:20:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mister\_Yu](https://avatars.discourse-cdn.com/v4/letter/m/22d042/32.png) [@Mister\_Yu](https://discuss.rubyonrails.org/u/Mister_Yu)\
**Post date:** [June 25, 2007, 5:20pm UTC](https://discuss.rubyonrails.org/t/undefined-method-each-for-class-problem/14879/1 "2007-06-25T17:20:35Z")

</div>

Hi,

i am very new to ROR, this is my 2nd day since i solve the problem of database connection. when i started to write some codes, i got stuck. here is the situation and please give me some help.

i have a "posts" table in my database

CREATE TABLE `mapapp`.`posts` ( &nbsp;&nbsp;`id` int(11) NOT NULL auto\_increment, &nbsp;&nbsp;`title` varchar(255) default NULL, &nbsp;&nbsp;`body` text, &nbsp;&nbsp;PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

i have an empty "post.rb" in my Models which looks like this: class Post \< ActiveRecord::Base end

i wrote an action in my controller which looks like this: &nbsp;&nbsp;def testing &nbsp;&nbsp;&nbsp;&nbsp;@posts = Post &nbsp;&nbsp;&nbsp;&nbsp;for p in @posts &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;render :text =\> p.id &nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;end

when i run this action on the browser, it gives me this error message: NoMethodError in PlcController#testing undefined method `each' for Post:Class RAILS\_ROOT: ./script/../config/..

Application Trace | Framework Trace | Full Trace C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/ base.rb:1235:in `method_missing' #{RAILS_ROOT}/app/controllers/plc_controller.rb:40:in `testing' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/ base.rb:1235:in `method_missing' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:1095:in `send' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ base.rb:1095:in `perform_action_without_filters' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ filters.rb:632:in `call\_filter' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ filters.rb:619:in `perform_action_without_benchmark' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ benchmarking.rb:66:in `perform\_action\_without\_rescue' C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ benchmarking.rb:66:in `perform\_action\_without\_rescue' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ rescue.rb:83:in `perform_action' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:430:in `send' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ base.rb:430:in `process_without_filters' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ filters.rb:624:in `process\_without\_session\_management\_support' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ session\_management.rb:114:in `process' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:330:in `process' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:41:in `dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick_server.rb: 113:in `handle\_dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick\_server.rb:79:in `service' C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start\_thread' C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start\_thread' C:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick_server.rb:63:in `dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/servers/ webrick.rb:59 C:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in `gem_original_require' C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active\_support/ dependencies.rb:495:in `require' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/ dependencies.rb:342:in `new\_constants\_in' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active\_support/ dependencies.rb:495:in `require' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/server.rb:39 C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem\_original\_require' C:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in `require' script/server:3 C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/ base.rb:1235:in `method\_missing' #{RAILS\_ROOT}/app/controllers/plc\_controller.rb:40:in `testing' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:1095:in `send' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ base.rb:1095:in `perform_action_without_filters' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ filters.rb:632:in `call\_filter' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ filters.rb:619:in `perform_action_without_benchmark' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ benchmarking.rb:66:in `perform\_action\_without\_rescue' C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ benchmarking.rb:66:in `perform\_action\_without\_rescue' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ rescue.rb:83:in `perform_action' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:430:in `send' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ base.rb:430:in `process_without_filters' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ filters.rb:624:in `process\_without\_session\_management\_support' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action\_controller/ session\_management.rb:114:in `process' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/ base.rb:330:in `process' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:41:in `dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick_server.rb: 113:in `handle\_dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick\_server.rb:79:in `service' C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start\_thread' C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start\_thread' C:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' C:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/webrick_server.rb:63:in `dispatch' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/servers/ webrick.rb:59 C:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in `gem_original_require' C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active\_support/ dependencies.rb:495:in `require' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/ dependencies.rb:342:in `new\_constants\_in' C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active\_support/ dependencies.rb:495:in `require' C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/server.rb:39 C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem\_original\_require' C:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in `require' script/server:3

i m very new, so please excuse me if i asked stupid questions.

but thanks for you time looking.

---

<div class="post-metadata">

**Author:** ![J\_Garvin](https://avatars.discourse-cdn.com/v4/letter/j/cc9497/32.png) [@J\_Garvin](https://discuss.rubyonrails.org/u/J_Garvin)\
**Post date:** [June 25, 2007, 5:38pm UTC](https://discuss.rubyonrails.org/t/undefined-method-each-for-class-problem/14879/2 "2007-06-25T17:38:00Z")

</div>

Make the following change....

def testing &nbsp;&nbsp;&nbsp;&nbsp;@posts = Post.find(:all)

---

<div class="post-metadata">

**Author:** ![notahat](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@notahat](https://discuss.rubyonrails.org/u/notahat)\
**Post date:** [June 26, 2007, 12:32am UTC](https://discuss.rubyonrails.org/t/undefined-method-each-for-class-problem/14879/3 "2007-06-26T00:32:36Z")

</div>

Your:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for p in @posts

is equivalent to:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@posts.each do |p|

You've just set @posts to be equal to the class Post, which doesn't have an each method.

What you probably meant to do is:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@posts = Post.find(:all)

or some other query to retrieve an array of Posts.

Pete Yandell

> **[Pete Yandell — Principal Engineer / Architect](https://notahat.com/)**
>
> Pete Yandell is an experienced Principal Software Engineer and Architect based in Melbourne, Australia.
