点击空行时停止解析

时间:2012-12-04 10:58:01

标签: ruby-on-rails parsing split cloudmailin

我有一个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 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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