0

HerokuでRoR アプリを実行しています。Cloudmailinアドオンを使用してアプリ自体に電子メールを送信しています。

これらの電子メールの内容は、データベースに新しいコンテンツを作成するために使用されます。これは、ユーザーが他のユーザーに対して賭けを行うことができるアプリです。結果はアプリに電子メールで送信されるため、決済プロセスをトリガーできます。

次のような受信メールコントローラーがあります。

class IncomingMailsController < ApplicationController
  skip_before_filter :verify_authenticity_token

  def create
    Spotprice.create(:deliverydate => Date.tomorrow, :spotarea_id => Spotarea.find_by_areaname("Phelix").id, :product_id => Product.find_by_productname("Base").id, :value_in_currency => "87")
  end

end

上記は問題なく動作しますが、上記のコードの静的コンテンツ ( Phelix、Base、Date.tomorrow、および 87 )ではなく、電子メールのコンテンツを読み取る必要があります。

では、電子メールの本文が次のようになっている場合、どうすればよいでしょうか。

23112012 Phelix Base 87.00
23112012 System Peak 64.55

メールには複数の行があり、各行はデータベース内の 1 つの新しいスポット価格です。これは、メールの各行を何らかの形でループして、各スポット価格を個別に作成する必要があることを意味します。

ヘルプは非常に高く評価されます:)

4

1 に答える 1

1

スペースで区切られたテキストの各行を解析する方法だけを探している場合、これは機能するはずです-

email_text_array = []

email_text.split("\n").each do |email_line|
    email_text_array << email_line.split(" ")
end

email_text_array は次のようになります

email_text_array = [
    ["23112012", "Phelix", "Base", "87.00"],
    ["23112012", "System", "Peak", "64.55"]
]
于 2012-11-22T12:56:16.267 に答える