2011-02-01 26 views
0

Ok Rails gurus、ここではちょっとしたアドバイスが必要です。Rails - DBにランダムなパラメータセットを格納する方法の提案

私はSendGridの解析APIを使用しようとしている: - 電子メールに含まれる添付ファイル の数

  • 添付ファイル:ここhttp://sendgrid.com/documentation/ApiParse

    大きな課題はSendGridは、API仕様に次のようにないことです。

  • 添付ファイル1、添付ファイル2、...添付ファイルN - ファイルアップロード名です.Nは添付ファイルの総数です。たとえば、添付ファイルの数が0の場合、添付ファイルはありません。添付ファイルの数が3の場合、パラメータattachment1、attachment2、およびattachment3にはファイルのアップロードが行われます。 TNEFファイル(winmail.dat)が展開され、添付ファイルが投稿されます。

DBにレスポンスを保存する必要がありますので、すべての重労働を遅らせることができます。

これを保存する最善の方法は何ですか?遅延ジョブが応答を使用できますか?どういうわけか、応答をMail.new()オブジェクトに変換できますか?または他のアイデア?添付ファイルのランダムなXは、データベースに100個のフィールドを追加せずにエレガントに解決するのは難しいです。

おかげ

答えて

2

添付ファイルをシリアル化して1つのフィールドに格納しようとします。私はMailオブジェクトを作り直すことはあなたのことを大いに役立つとは思わない。

ここに行く: http://api.rubyonrails.org/classes/ActiveRecord/Base.html と、このタイトル「テキスト列内の保存配列、ハッシュ、および他の非マッピング可能オブジェクト」

+0

ありがとうございます:preferences => {"background" => "black"、 "display" => large} ...しかし、sendgridが送信するすべてのX#(1 - 100)添付ファイルをシリアル化するにはどうすればいいですか? – AnApprentice

+0

なので、 'files = [:attachment1 => 'file.jpg'、:attachment2 => 'file2.png']'のようなものが返ってきたら、シリアライズされた配列のファイルをActiveRecordのように自動的に'MyObject.attachments = files'として保存すると、配列をシリアライズして1つのフィールドに格納します。その後、それらを取得するために行くと、それはあなたにネイティブのRuby配列を返します。 – bobbywilson0

+0

感謝の気持ちの良いボビーは、Nレコードで先進レベルのシリアライゼーションを行う方法を今すぐ確信しています。それは別の質問ですから。私はこれを受け入れ、新しいスレッドを開きます。 – AnApprentice

0

私は、次のことをお勧め右の理解場合:あなたがフィールド上にクエリを必要としない場合は、データベーステーブル内の1つのフィールドにYAMLやJSONなどの属性のハッシュを保存chould

+0

を探して感謝します。しかし、私はフィールドを照会する必要があり、メールオブジェクトでそれを行うことができることは素晴らしいだろう... Mail.subject、Mail.toなど...考え?また、添付ファイルはどうですか? – AnApprentice

関連する問題