2012-12-04 54 views
1

我有一個Rails應用程序使用Cloud-mailin附件解析Heroku上的傳入電子郵件。該應用程序接收電子郵件中的價格列表並將它們插入到數據庫中。停止解析空行時

這工作正常,但如果電子郵件包含例如在底部的簽名代碼失敗,因爲它也試圖分析該文本。

因此,我想重寫下面的解析代碼,當它打到電子郵件中的空行時停止。所有價格數據始終位於電子郵件的頂部。

email_text = params[:plain] 
email_text_array = [] 

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

如何更改上面的停止,當它擊中的email_taxt變量的空行?

謝謝!

回答

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 
+0

只是我需要的東西..謝謝! – Twiddr

0

請問這個問題的幫助:Is there a "do ... while" loop in Ruby?

編輯1:

從上面的文章中,我覺得像這樣的工作:

email_text.split("\n").each do |email_line| 
    break if email_line.length < 1 
    email_text_array << email_line.split(" ")  
end