【发布时间】:2008-11-17 11:28:16
【问题描述】:
我想将从文本字段(以逗号分隔)收集的一组电子邮件地址保存到表中的单个字段中。我正在尝试使用序列化,但出现 SerializationTypeMismatch 错误。我该怎么做?
这是我的模型:
班组<:base>
类收件人
序列化:收件人,收件人
结束
【问题讨论】:
标签: ruby-on-rails serialization
我想将从文本字段(以逗号分隔)收集的一组电子邮件地址保存到表中的单个字段中。我正在尝试使用序列化,但出现 SerializationTypeMismatch 错误。我该怎么做?
这是我的模型:
班组<:base>
类收件人
序列化:收件人,收件人
结束
【问题讨论】:
标签: ruby-on-rails serialization
我真的建议您解析(例如,用逗号分隔)电子邮件列表,并将每个电子邮件列表放在一个单独的表中(我假设您在谈论数据库表?)。如果您想将电子邮件地址用于某些事情,最好将它们单独存储,并且由于您正在谈论序列化,我猜您已经解析了电子邮件,并尝试将数组或类似内容存储到数据库中的单个字段中.执行此操作的“正确”规范化数据库方法是在您当前尝试保存对象的模型中,添加has_many :emails(或类似名称)并为每封电子邮件创建一个新的电子邮件表。
人们总是应该有一个非常充分的理由将列表类型的数据存储在 blob 中,而不是使用适当的关联表。
【讨论】:
如果给您一个逗号分隔的电子邮件地址列表,并且当您需要使用该信息时,逗号分隔的列表很有用,那么只需将其放在模型中的文本列中,无需序列化。
如果需要序列化列表,不就是一个数组吗?你能解释一下哈希的选择吗?
【讨论】: