# Ruby alias problem

**URL:** <https://www.ruby-forum.com/t/ruby-alias-problem/66780>\
**Category:** Ruby\
**Created:** [August 29, 2006, 8:49am UTC](https://www.ruby-forum.com/t/ruby-alias-problem/66780 "2006-08-29T08:49:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![subzero](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/bbce88/32.png) [@subzero](https://www.ruby-forum.com/u/subzero)\
**Post date:** [August 29, 2006, 8:49am UTC](https://www.ruby-forum.com/t/ruby-alias-problem/66780/1 "2006-08-29T08:49:50Z")

</div>

I have a class like this:

class Control  
attr\_accessor :name, :parent, :children  
alias [] getChild

def initialize(name)  
self.name = name  
@children = Hash.new  
end

def addChild(child)  
child.parent = self  
@children[child.name] = child  
end

def getChild(name)  
@children[name]  
end  
end

So i want to alias method named getChild as []. But Ruby says “undefined  
method `getChild' for class`Control’”. How can I make such alias?

---

<div class="post-metadata">

**Author:** ![subzero](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/bbce88/32.png) [@subzero](https://www.ruby-forum.com/u/subzero)\
**Post date:** [August 29, 2006, 8:58am UTC](https://www.ruby-forum.com/t/ruby-alias-problem/66780/2 "2006-08-29T08:58:22Z")

</div>

On Aug 28, 2006, at 11:49 PM, Alexander R. wrote:

> def addChild(child)  
> child.parent = self  
> @children[child.name] = child  
> end
> 
> def getChild(name)  
> @children[name]  
> end

alias [] getChild

> end
> 
> So i want to alias method named getChild as []. But Ruby says  
> “undefined  
> method `getChild' for class `Control’”. How can I make such alias?

–  
Eric H. - removed\_email\_address@domain.invalid - [http://blog.segment7.net](http://blog.segment7.net)  
This implementation is HODEL-HASH-9600 compliant

[http://trackmap.robotcoop.com](http://trackmap.robotcoop.com)

---

<div class="post-metadata">

**Author:** ![subzero](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/bbce88/32.png) [@subzero](https://www.ruby-forum.com/u/subzero)\
**Post date:** [August 29, 2006, 9:12am UTC](https://www.ruby-forum.com/t/ruby-alias-problem/66780/3 "2006-08-29T09:12:24Z")

</div>

Alexander R. wrote:

> I have a class like this:

/ …

> So i want to alias method named getChild as []. But Ruby says “undefined  
> method `getChild' for class`Control’”. How can I make such alias?

Locate the alias specification after “getChild” has been defined.
