# Help with Model Associations

**URL:** <https://www.ruby-forum.com/t/help-with-model-associations/122978>\
**Category:** Rails\
**Created:** [December 13, 2007, 5:20am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978 "2007-12-13T05:20:40Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![veeraa2003](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b487fb/32.png) [@veeraa2003](https://www.ruby-forum.com/u/veeraa2003)\
**Post date:** [December 13, 2007, 5:20am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978/1 "2007-12-13T05:20:40Z")

</div>

HI everybody,

I need some help with model association.

Here I have one user table.

User table.  
id name  
1 XXX  
2 YYY  
3 ZZZ  
4 XYZ

Message Table

id sender\_id receiver\_id message  
1 1 2 HI. HOW R U  
2 2 1 YEAH. FINE  
3 2 4 HI. WR R U NOW?

1. Here I want get the sender\_name and receiver name for an message.  
Like below  
@msg=Message.find(1)  
@msg.sender.name  
@msg.receiver.name

2. Same like I want to get the sent and received messages for a  
Particular message.  
@user=User.find(1)  
@user.sent\_msg  
@user.received\_msg

Can any one help how I have to build the association between these two  
models, Here I dont want to create one more table.

Regards,  
T.Veeraa.

---

<div class="post-metadata">

**Author:** ![veeraa2003](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b487fb/32.png) [@veeraa2003](https://www.ruby-forum.com/u/veeraa2003)\
**Post date:** [December 13, 2007, 6:48am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978/2 "2007-12-13T06:48:59Z")

</div>

On Dec 12, 2007 8:20 PM, Veera S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> id name  
> 3 2 4 HI. WR R U NOW?
> 
> 1. Here I want get the sender\_name and receiver name for an message.  
> Like below  
> @msg=Message.find(1)  
> @msg.sender.name  
> @msg.receiver.name

class Message \< ActiveRecord::Base  
belongs\_to :sender, :class\_name =\> “User”  
belongs\_to :receiver, :class\_name =\> “User”  
end

> 1. Same like I want to get the sent and received messages for a  
> Particular message.  
> @user=User.find(1)  
> @user.sent\_msg  
> @user.received\_msg

class User \< ActiveRecord::Base  
has\_many :sent\_messages, :class\_name =\> “Message”, :foreign\_key =\>  
“sender\_id”  
has\_many :received\_messages, :class\_name =\> “Message”, :foreign\_key  
=\> “receiver\_id”  
end

Pat

---

<div class="post-metadata">

**Author:** ![veeraa2003](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b487fb/32.png) [@veeraa2003](https://www.ruby-forum.com/u/veeraa2003)\
**Post date:** [December 13, 2007, 9:55am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978/3 "2007-12-13T09:55:23Z")

</div>

Pat M. wrote:

> On Dec 12, 2007 8:20 PM, Veera S.  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > id name  
> > 3 2 4 HI. WR R U NOW?
> > 
> > 1. Here I want get the sender\_name and receiver name for an message.  
> > Like below  
> > @msg=Message.find(1)  
> > @msg.sender.name  
> > @msg.receiver.name
> 
> class Message \< ActiveRecord::Base  
> belongs\_to :sender, :class\_name =\> “User”  
> belongs\_to :receiver, :class\_name =\> “User”  
> end
> 
> > 1. Same like I want to get the sent and received messages for a  
> > Particular message.  
> > @user=User.find(1)  
> > @user.sent\_msg  
> > @user.received\_msg
> 
> class User \< ActiveRecord::Base  
> has\_many :sent\_messages, :class\_name =\> “Message”, :foreign\_key =\>  
> “sender\_id”  
> has\_many :received\_messages, :class\_name =\> “Message”, :foreign\_key  
> =\> “receiver\_id”  
> end
> 
> Pat

@user=User.find(1)  
@user.sent\_messages working.

But  
@msg = Message.find(1)  
@msg.sender returns nil

---

<div class="post-metadata">

**Author:** ![veeraa2003](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b487fb/32.png) [@veeraa2003](https://www.ruby-forum.com/u/veeraa2003)\
**Post date:** [December 13, 2007, 10:11am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978/4 "2007-12-13T10:11:54Z")

</div>

sorry for the mistake

class Message \< ActiveRecord::Base  
belongs\_to :sender, :class\_name =\> “User”, :foreign\_key=\>“sender\_id”  
belongs\_to :receiver, :class\_name =\> “User”,  
:foreign\_key=\>“receiver\_id”  
end

Veera S. wrote:

> class Message \< ActiveRecord::Base  
> belongs\_to :sender, :class\_name =\> “User”, :foreign\_key=\>“id”  
> belongs\_to :receiver, :class\_name =\> “User”, :foreign\_key=\>“id”  
> end
> 
> class User \< ActiveRecord::Base  
> has\_many :sent\_messages, :class\_name =\> “Message”, :foreign\_key =\>  
> “sender\_id”  
> has\_many :received\_messages, :class\_name =\> “Message”, :foreign\_key  
> =\> “receiver\_id”  
> end
> 
> Working fine.
> 
> Now I can query from both the ends.
> 
> Thanks for your help Pat M…
> 
> Regards,  
> Veeraa.T

---

<div class="post-metadata">

**Author:** ![veeraa2003](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b487fb/32.png) [@veeraa2003](https://www.ruby-forum.com/u/veeraa2003)\
**Post date:** [December 13, 2007, 9:58am UTC](https://www.ruby-forum.com/t/help-with-model-associations/122978/5 "2007-12-13T09:58:47Z")

</div>

class Message \< ActiveRecord::Base  
belongs\_to :sender, :class\_name =\> “User”, :foreign\_key=\>“id”  
belongs\_to :receiver, :class\_name =\> “User”, :foreign\_key=\>“id”  
end

class User \< ActiveRecord::Base  
has\_many :sent\_messages, :class\_name =\> “Message”, :foreign\_key =\>  
“sender\_id”  
has\_many :received\_messages, :class\_name =\> “Message”, :foreign\_key  
=\> “receiver\_id”  
end

Working fine.

Now I can query from both the ends.

Thanks for your help Pat M…

Regards,  
Veeraa.T
