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?
-
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
-
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?
- 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
- 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?
- 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
- 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