# Attribute alias

**URL:** <https://www.ruby-forum.com/t/attribute-alias/107576>\
**Category:** Rails\
**Created:** [June 23, 2007, 4:24pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576 "2007-06-23T16:24:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 4:24pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/1 "2007-06-23T16:24:11Z")

</div>

Is it possible to use attribute aliases? I got an attribute called  
“user\_name”, a plugin uses the attribute “login” instead. Can I make  
“login” an alias for “user\_name”?

---

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 4:32pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/2 "2007-06-23T16:32:07Z")

</div>

Jonas wrote:

> Is it possible to use attribute aliases? I got an attribute called  
> “user\_name”, a plugin uses the attribute “login” instead. Can I make  
> “login” an alias for “user\_name”?

def login  
self.user\_name  
end

def login=(login)  
self.user\_name = login  
end

–  
Cheers,

- Jacob A.

---

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 4:33pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/3 "2007-06-23T16:33:29Z")

</div>

> def login  
> self.user\_name  
> end
> 
> def login=(login)  
> self.user\_name = login  
> end

I’ve done that. But then stuff like “find\_by\_login” do not work.

---

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 4:40pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/4 "2007-06-23T16:40:32Z")

</div>

> I haven’t heard of a way to get the full palette of AR “magic” functions  
> aliased, sorry.

Ok. I’ve tried to add the method below to the model, but I still get  
method\_missing exception.

def find\_by\_login(value)  
find\_by\_user\_name value  
end

---

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 4:38pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/5 "2007-06-23T16:38:08Z")

</div>

Jonas wrote:

> > def login  
> > self.user\_name  
> > end
> > 
> > def login=(login)  
> > self.user\_name = login  
> > end
> 
> I’ve done that. But then stuff like “find\_by\_login” do not work.

I haven’t heard of a way to get the full palette of AR “magic” functions  
aliased, sorry.

–  
Cheers,

- Jacob A.

---

<div class="post-metadata">

**Author:** ![jonas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jonas](https://www.ruby-forum.com/u/jonas)\
**Post date:** [June 23, 2007, 5:51pm UTC](https://www.ruby-forum.com/t/attribute-alias/107576/6 "2007-06-23T17:51:15Z")

</div>

Hi Jonas,

I think you want the class method so instead of:

- def find\_by\_login(value)

you want to say:

- def self.find\_by\_login value

Also I wouldn’t use any more magic methods like:

- find\_by\_user\_name value

instead I would use:

- find :first, :conditions =\> [‘user\_name = ?’, value]

…but that’s another story… 🙂

Regards  
Florian

Jonas schrieb:
