# Making those fancy advanced methods

**URL:** <https://discuss.rubyonrails.org/t/making-those-fancy-advanced-methods/24465>\
**Category:** rubyonrails-talk\
**Created:** [February 6, 2008, 10:29pm UTC](https://discuss.rubyonrails.org/t/making-those-fancy-advanced-methods/24465 "2008-02-06T22:29:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![11175](https://avatars.discourse-cdn.com/v4/letter/1/8edcca/32.png) [@11175](https://discuss.rubyonrails.org/u/11175)\
**Post date:** [February 6, 2008, 10:29pm UTC](https://discuss.rubyonrails.org/t/making-those-fancy-advanced-methods/24465/1 "2008-02-06T22:29:02Z")

</div>

How do you write a method thats similar to find\_by\_username, I want to write a method that works dynamically like that, but I have no idea where to begin...

Do you declare the method differently? How do you access the part of the method header you want, i.e. username?

TIA Luke

---

<div class="post-metadata">

**Author:** ![Jeremy\_McAnally](https://avatars.discourse-cdn.com/v4/letter/j/c89c15/32.png) [@Jeremy\_McAnally](https://discuss.rubyonrails.org/u/Jeremy_McAnally)\
**Post date:** [February 6, 2008, 10:32pm UTC](https://discuss.rubyonrails.org/t/making-those-fancy-advanced-methods/24465/2 "2008-02-06T22:32:31Z")

</div>

Take a look at method\_missing, and specifically how ActiveRecord::Base implements it in the Rails codebase.

method\_missing is the method called when a method is..er...missing. 🙂For example:

def method\_missing(meth) &nbsp;&nbsp;puts "Called #{meth}, which was missing..." &nbsp;&nbsp;raise NoMethodError end

Playing with that in a class should get you started.

--Jeremy
