2012-06-12 3 views
0

я могу получить тело сообщения электронной почты в формате Строка как такРубин на рельсах - строка массив странного форматирования в электронной разборе

тело = Params [: равнинный]

И когда я вывести его, это выглядит так:

Привет.

-
Джон Б.

Направлено из моего iPhone.

Теперь, когда я пытаюсь и разделить на новой строки body.split("\n") я получаю:

---
- 'Всем привет.'
- ''
-! '-'
- John B.
- ''
- Отправлено с моего iPhone.

Я действительно не понимаю лишние дефисы и челки. Есть предположения?

Также, если я делаю body[2] Я получаю --, но body.index("--") ничего мне не возвращает.

UPDATE

В мой контроллер 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)%>

UPDATE 2

Когда я сделать что-то подобное, body.split("\n").to_s я получаю каков должен быть ожидаемый массив (как String): ["Hi there. ", "", "-- ", "John B.", "", "Sent from my iPhone."]

+2

Это сериализации массив YAML, хотя я не знаю, почему. –

+0

hmmm, если это случай, как я могу десериализоваться в норму? Я нашел эту статью, что я работаю через http://www.skorks.com/2010/04/serializing-and-deserializing-objects-with-ruby/ –

+0

Без какого-либо контекста трудно понять, как помочь. Если вы сериализовали его, скажем, в БД, просто прочитайте его обратно. Как вы его показываете и все что имеет значение - и мы не знаем. –

ответ

0

Я не думаю, что params [: plain] на самом деле является строкой - я думаю, вы должны проверить его, чтобы узнать, что это на самом деле. Например попробовать:

puts params[:plain].class

+0

сделал это, и это строка –

Смежные вопросы