0

我可以像这样以字符串格式获取电子邮件的正文

身体 = 参数 [:plain]

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

你好呀。

——
约翰·B。

从我的iPhone发送。

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

----
- !'你好呀。'
- ''
- !'-'
- John B.
- ''
- 从我的 iPhone 发送。

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

另外,如果我这样做,body[2]我会得到--,但body.index("--")什么也没给我。

更新

在我的 ReceivingMails 控制器中:

...

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

在我看来,评论显示为:<%= simple_format(comment.content)%>

更新 2

当我做类似的事情时,body.split("\n").to_s我得到了预期的数组应该是什么样的(作为字符串):["Hi there. ", "", "-- ", "John B.", "", "Sent from my iPhone."]

4

1 回答 1

0

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

puts params[:plain].class

于 2012-06-12T23:48:46.053 回答