1

Cloud-mailin アドオンを使用して、Heroku で受信メールを解析する Rails アプリを使用しています。アプリは電子メールで価格のリストを受け取り、データベースに挿入します。

これは問題なく動作しますが、たとえば電子メールの下部に署名が含まれている場合、そのテキストも解析しようとするため、コードは失敗します。

そのため、以下の解析コードを書き直して、電子メールの空行に到達すると停止するようにします。すべての価格データは、常に電子メールの上部にあります。

email_text = params[:plain]
email_text_array = []

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

email_taxt変数の空の行にヒットしたときに停止するように上記を変更するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

次を追加できますbreak

email_text.split("\n").each do |email_line|
  break if email_line.blank?  # ends loop on first empty line
  email_text_array << email_line.split(" ")
end 
于 2012-12-04T11:08:26.783 に答える
0

この質問は役に立ちますか: Ruby に "do ... while" ループはありますか?

編集1:

上記の記事から、次のようなものがうまくいくと思います:

email_text.split("\n").each do |email_line| 
  break if email_line.length < 1
  email_text_array << email_line.split(" ")     
end
于 2012-12-04T11:03:55.043 に答える