我是Rails的新手,实际上我正在尝试编写自己的消息传递应用程序。到目前为止,我有很多用户使用用户名,密码等。现在我想知道我应该如何最好地编写消息模型的迁移。我认为需要一条消息:
邮件
sender_id => integer
recipent_id => integer
created_at => time
updated_at => time
第一个问题我面临的当然是sender_id是唯一的,但是对于recipent_id来说,通常会有消息传给几个人!
下一个问题我不知道如何将用户模型引用到消息模型我的意思是我会写的正常:
用户 has_many:讯息
消息 belongs_to:user
要做到这一点,我需要在消息模型中使用名为user_id的coulmn,但现在我有两个cloumns sender_id和reciepent_id!
我希望你能给我一些提示!感谢
答案 0 :(得分:2)
这是你在找什么?
class User < ActiveRecord::Base
has_many :messages, :foreign_key => "sender_id" #this only gives the messages sent by the user.
end
class Message < ActiveRecord::Base
#sender_id
belongs_to :sender, :class => "User", :foreign_key => "sender_id"
has_many :recipients, :class => "MessageRecipient"
end
class MessageRecipient < ActiveRecord::Base
belongs_to :message
belongs_to :recipient, :class => "User", :foreign_key => "recipient_id"
end
如果您想获取邮件的所有收件人,您可以
message.recipients.collect(&:email)