# What is the use of 'abstract\_method'?

**URL:** <https://www.ruby-forum.com/t/what-is-the-use-of-abstract-method/141882>\
**Category:** Rails\
**Created:** [July 1, 2008, 12:01pm UTC](https://www.ruby-forum.com/t/what-is-the-use-of-abstract-method/141882 "2008-07-01T12:01:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rahulonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ad7895/32.png) [@rahulonrails](https://www.ruby-forum.com/u/rahulonrails)\
**Post date:** [July 1, 2008, 12:01pm UTC](https://www.ruby-forum.com/t/what-is-the-use-of-abstract-method/141882/1 "2008-07-01T12:01:56Z")

</div>

What is the use of ‘abstract\_method’ in rails?

–Rahul

---

<div class="post-metadata">

**Author:** ![rahulonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ad7895/32.png) [@rahulonrails](https://www.ruby-forum.com/u/rahulonrails)\
**Post date:** [July 1, 2008, 2:42pm UTC](https://www.ruby-forum.com/t/what-is-the-use-of-abstract-method/141882/2 "2008-07-01T14:42:44Z")

</div>

On Jul 1, 6:01 am, Rahul P s [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> What is the use of ‘abstract\_method’ in rails?

[http://www.noobkit.com/show/ruby/gems/io/rio/module/abstract\_method.html](http://www.noobkit.com/show/ruby/gems/io/rio/module/abstract_method.html)  
defines it as:  
“abstract\_method(symbol, …) extends Module defines a method which  
raises AbstractMethodCalled used in a base class to ensure that  
subclasses define an implementation”

---

<div class="post-metadata">

**Author:** ![rahulonrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ad7895/32.png) [@rahulonrails](https://www.ruby-forum.com/u/rahulonrails)\
**Post date:** [July 1, 2008, 4:54pm UTC](https://www.ruby-forum.com/t/what-is-the-use-of-abstract-method/141882/3 "2008-07-01T16:54:55Z")

</div>

It is used to cap the parent class of an inheritance.

so if class Foo \< Bar

and Bar.some\_method you want it to have to be defined in all  
subclasess (Foo and others…) you do like such:

class Bar  
def some\_method  
abstract\_method  
end  
end

then all subclasses must implement some\_method or it will complain  
when being called (Note, untill it is called, everything is sweet,  
this can casue bugs…)
