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当它碰到变量中的空行时,如何更改上述内容以停止?

谢谢!

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 回答