【问题标题】:Rails - Suggestions on how to store a random set of params in the DBRails - 关于如何在数据库中存储一组随机参数的建议
【发布时间】:2011-06-19 15:31:16
【问题描述】:

好的 Rails 专家,我需要一些明智的建议。

我正在尝试使用 SendGrid 的解析 api:http://sendgrid.com/documentation/ApiParse

这里最大的挑战是 SendGrid 在 API 规范中执行以下操作:

  • 附件 - 附件数量 包含在电子邮件中。
  • attachment1, attachment2, ..., attachmentN - 这些是文件上传名称,其中 N 是附件总数。例如,如果附件数为 0,则不会有附件文件。如果附件数量为3,参数attachment1、attachment2、attachment3会有文件上传。 TNEF 文件 (winmail.dat) 将被提取并张贴任何附件。

我需要将响应存储在数据库中,以便我可以将其发送到延迟的工作以完成所有繁重的工作。

存储此延迟作业可以使用响应的最佳方式是什么?我可以以某种方式将响应转换为 Mail.new() 对象吗?还是其他一些想法?附件的随机 X 使得在不向数据库添加 100 个字段的情况下优雅地解决问题变得很棘手。

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku actionmailer sendgrid


    【解决方案1】:

    如果我理解正确,我建议如下:

    如果您不需要查询字段,您可以将属性哈希作为 YAML 或 JSON 存储到数据库表中的一个字段中。

    【讨论】:

    • 谢谢。但是我确实需要查询该字段并且能够使用 Mail 对象来做到这一点将是惊人的...... Mail.subject、Mail.to 等......想法?还有附件呢?
    【解决方案2】:

    我会尝试序列化附件并存储在单个字段中。我不认为重新创建一个 Mail 对象会对你有什么好处。

    去这里: http://api.rubyonrails.org/classes/ActiveRecord/Base.html 并查找此标题“在文本列中保存数组、哈希和其他不可映射的对象”

    【讨论】:

    • 谢谢,像 :preferences => { "background" => "black", "display" => large } ... 但是我如何序列化所有的 X # (1 - 100 ) sendgrid 发送的附件?
    • 所以如果你得到类似的东西:files = [:attachment1 => 'file.jpg', :attachment2 => 'file2.png']你可以通过像MyObject.attachments = files这样的ActiveRecord自动将所有这些文件保存在序列化数组中,当你保存它时会序列化数组以便它存储在单个字段中。然后,当您将它们取出时,它会返回一个原生 Ruby 数组。
    • 感谢 bobby 说得有道理,现在才确定如何使用 N 条记录进行高级序列化。因为这是一个单独的问题。我会接受这个并打开一个新线程。
    猜你喜欢
    • 2010-11-27
    • 2015-05-18
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 2012-06-15
    相关资源
    最近更新 更多