我有一个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
变量中的空行时,如何更改上面的内容?
谢谢!
答案 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