【问题标题】:Save multiple objects to single field in a table将多个对象保存到表中的单个字段
【发布时间】:2008-11-17 11:28:16
【问题描述】:

我想将从文本字段(以逗号分隔)收集的一组电子邮件地址保存到表中的单个字段中。我正在尝试使用序列化,但出现 SerializationTypeMismatch 错误。我该怎么做?

这是我的模型:

班组<:base>

类收件人

序列化:收件人,收件人

结束

【问题讨论】:

    标签: ruby-on-rails serialization


    【解决方案1】:

    我真的建议您解析(例如,用逗号分隔)电子邮件列表,并将每个电子邮件列表放在一个单独的表中(我假设您在谈论数据库表?)。如果您想将电子邮件地址用于某些事情,最好将它们单独存储,并且由于您正在谈论序列化,我猜您已经解析了电子邮件,并尝试将数组或类似内容存储到数据库中的单个字段中.执行此操作的“正确”规范化数据库方法是在您当前尝试保存对象的模型中,添加has_many :emails(或类似名称)并为每封电子邮件创建一个新的电子邮件表。

    人们总是应该有一个非常充分的理由将列表类型的数据存储在 blob 中,而不是使用适当的关联表。

    【讨论】:

      【解决方案2】:

      如果给您一个逗号分隔的电子邮件地址列表,并且当您需要使用该信息时,逗号分隔的列表很有用,那么只需将其放在模型中的文本列中,无需序列化。

      如果需要序列化列表,不就是一个数组吗?你能解释一下哈希的选择吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-05
        • 1970-01-01
        • 2018-09-30
        • 2012-08-22
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        相关资源
        最近更新 更多