Help with Model Associations

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.

On Dec 12, 2007 8:20 PM, Veera S.
[email protected] 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

Pat M. wrote:

On Dec 12, 2007 8:20 PM, Veera S.
[email protected] 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

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

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs