# Undefined method error

**URL:** <https://www.ruby-forum.com/t/undefined-method-error/96094>\
**Category:** Rails\
**Created:** [January 23, 2006, 10:30am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094 "2006-01-23T10:30:01Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 10:30am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/1 "2006-01-23T10:30:01Z")

</div>

Hi everybody,

Small problem. I get this error:

undefined method `all\_categories’ for BlogCategory:Class

Code of BlogCategory class is:

class BlogCategory \< ActiveRecord::Base

has\_and\_belongs\_to\_many :blog\_posts

validates\_presence\_of :name  
validates\_uniqueness\_of :name

# Return all categories ordered by name

def all\_categories  
find :all, :order =\> ‘name’  
end;

end

I call this function from FrontendController with simple:

@all\_categories = BlogCategory.all\_categories

As far as I can see there IS an all\_categories method in BlogCategory  
class, but from some reason I can’t access it in controller.

Any ideas? I’m totally new to Ruby so I don’t know where to start (tried  
google, but with no luck).

---

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 10:39am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/2 "2006-01-23T10:39:54Z")

</div>

Ilija Studen wrote:

> Hi everybody,
> 
> Small problem. I get this error:
> 
> undefined method `all\_categories’ for BlogCategory:Class
> 
> def all\_categories  
> find :all, :order =\> ‘name’  
> end;
> 
> @all\_categories = BlogCategory.all\_categories

find is a class method.

do

def all\_categories  
BlogCategory.find :all, :order =\> ‘name’  
end;

---

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 10:55am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/3 "2006-01-23T10:55:53Z")

</div>

Hi,

Updated the code with:

def all\_categories  
BlogCategory.find(:all, :order =\> ‘name’)  
end

I still get the same error…

---

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 11:31am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/4 "2006-01-23T11:31:23Z")

</div>

Lugovoi N. wrote:

> def self.all\_categories  
> BlogCategory.find(:all, :order =\> ‘name’)  
> end

yes…

---

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 11:01am UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/5 "2006-01-23T11:01:06Z")

</div>

def self.all\_categories  
BlogCategory.find(:all, :order =\> ‘name’)  
end

---

<div class="post-metadata">

**Author:** ![Ilija\_Studen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/4491bb/32.png) [@Ilija\_Studen](https://www.ruby-forum.com/u/Ilija_Studen)\
**Post date:** [January 23, 2006, 1:01pm UTC](https://www.ruby-forum.com/t/undefined-method-error/96094/6 "2006-01-23T13:01:24Z")

</div>

Lugovoi N. wrote:

> def self.all\_categories  
> BlogCategory.find(:all, :order =\> ‘name’)  
> end

That’s it. Thanks 🙂
