Ruby on Rails - 在电子邮件解析中将字符串转换为数组奇怪的格式

时间:2012-06-12 21:31:40

标签: ruby-on-rails-3

我可以像String那样获取电子邮件的正文

  

body = params [:plain]

当我输出它时,它看起来像:

  

你好。

     

-
  约翰B.

     

从我的iPhone发送。

现在,当我尝试按换行body.split("\n")分割时,我得到:

  

---
   - ! '嗨,您好。'
   - ''    - ! ' - '
   - 约翰B.    - ''    - 从我的iPhone发送。

我真的不明白额外的连字符和刘海。有什么想法吗?

如果我body[2] --,我会body.index("--"),但... def create body = params[:plain] parsed_body = parse_body(body) Comment.new(:content => parsed_body) end private def parse_body(body) split = body.split("\n") sig_index = split.index("-- ") return split[0, sig_index].join("\n") end 不会给我任何回报。

更新

在我的ReceivingMails控制器中:

<%= simple_format(comment.content)%>

在我看来,评论显示为:body.split("\n").to_s

更新2

当我做类似的事情时,["Hi there. ", "", "-- ", "John B.", "", "Sent from my iPhone."]我得到了预期的数组应该是什么样的(如String):{{1}}

1 个答案:

答案 0 :(得分:0)

我不认为params [:plain]实际上是一个字符串 - 我认为你应该测试它以找出它实际上是什么。例如,尝试:

puts params[:plain].class