我有一个名为email_messages的表。我有from
,to
,cc
,bcc
列。目前,我将它们存储为文本字段,其中包含电子邮件地址的序列化数组。但我想将地址提取到自己的表中,因此我可以重复使用地址,并使用typeahead搜索地址变得更容易。
显然,我需要多对多。但如果我这样做:
class EmailMessage
has_many :email_message_addresses
has_many :addresses, through: :email_message_addresses
end
class Address
has_many :email_message_addresses
has_many :email_messages, through: :email_message_addresses
end
如何为单个记录关联每个from
,to
,cc
,bcc
字段的地址? from
字段可以包含3个地址,to
字段可以包含5个地址等。
答案 0 :(得分:0)
向名为role
的email_message_addresses添加属性,该属性可以采用值from
,to
等。
您可能希望添加一些方法,以便您可以执行以下语法
@message = EmailMessage.find(...)
@message.to_addresses # -> array of addresses in the "to" field
@message.cc_addresses # -> array of addresses in the "cc" field
# etc.