Rails 中的消息关联

Messaging Associations in Rails

我正在创建一个 Rails 消息传递应用程序(使用 Twilio,我想这不是超级相关的)具有以下模型:

联系人有很多 Phone 个号码,很简单。

Messages 有很多 phone 个号码,只是不多,刚好是两个。从和到。

我希望能够拨打以下电话: @message.from.contact

以下是我考虑过的一些方法:

我知道我没有发布任何代码。我已经完成了一些迁移和回滚,现在回到原点...

感谢您的帮助。我是 Stack Overflow 的新手,也是 Rails 的新手,所以您的帮助意义重大!

是的,您的第一个要点是正确答案。对于您的 Message 模型,属性 from_idto_id 都引用特定的 phone 数字。我已经推断出您的模型名称,因此您可能需要更正这些名称,但总而言之:

迁移应如下所示:

add_column :messages, :from_id, :integer
add_column :messages, :to_id, :integer

消息 class 应如下所示:

belongs_to :from_phone_number, class_name: 'PhoneNumber'
belongs_to :to_phone_number, class_name: 'PhoneNumber'

PhoneNumber class 应如下所示:

has_many :sent_messages, class_name: 'Message', foreign_key: 'from_id'
has_many :received_messages, class_name: 'Message', foreign_key: 'to_id'

您可以在消息中删除一些方法 class 以提供您正在寻找的速记方法:

def from
  from_phone_number
end

在我看来,仅将 from 作为模型本身的属性并没有很好的描述性,可能意味着用户或 phone 号码。