该模型应该如何设计?

Geo*_*Geo 1 ruby activerecord ruby-on-rails

在Rails应用程序中,我希望允许用户将消息从一个发送到另一个.所以,我有一个用户模型将具有:

has_many :messages
Run Code Online (Sandbox Code Playgroud)

我在想这个Message模型将有一个from字段,包含发送它to的用户的id ,以及一个字段,其中包含要发送给它的用户的用户ID.Messsage模型的最佳实践是什么?我应该像这样生成它:

rails g model Message from:integer to:integer title:string content:text

我如何将其与用户相关联?我应该将它与2个用户关联,因为fromto字段引用现有用户吗?我怎么代表这种关系?我会在消息模型中写什么样的关系?belongs_to :user

我觉得应该有一种方法让Rails为我管理用户ID,这样我就不必自己创建整数字段了.

Ash*_*ish 6

User

has_many :sent_messages, :class_name => "Message", :foreign_key => 'from'
has_many :received_messages, :class_name => "Message", :foreign_key => 'to'

Message

belongs_to :sender, :class_name => 'User', :foreign_key => 'from'
belongs_to :receiver, :class_name => 'User' :foreign_key => 'to'
Run Code Online (Sandbox Code Playgroud)