如何在Ruby on Rails中使用简单格式将\ r \n转换为<p>?

AnA*_*ice 4 ruby-on-rails ruby-on-rails-3

现在它只是添加

\r\n\r\n
Run Code Online (Sandbox Code Playgroud)

我想弄清楚如何转换

\r \n to <p> tags 
Run Code Online (Sandbox Code Playgroud)

HTML通过XHR发布到数据库,firebug中的帖子显示如下:

html:

<html><head>\r\n<meta http-equiv=Content-Type content=text/html; charset=utf-8>\r\n</head>\r\n<body>\r\n<pre style=word-wrap:break-word; font-size:10.0pt; font-family:Tahoma; color:black>YADA YADA YADAYADA YADA YADAYADA YADA YADAYADA YADA YADA!\n\n YADA YADA YADAYADA YADA YADAYADA YADA YADAYADA YADA YADA.\n\nYADA YADA YADA\n\n&lt; via mobile device &gt;\n\nYADA YADA YADA &lt;xxxx@xxxxx.com&gt; wrote:\n\n</pre>\r\n<div>\r\n<table cellpadding=0 cellspacing=0 border=0 width=700 style=padding:0;>\r\n<tbody>\r\n<tr>\r\n<td colspan=2 style=color:#000000;font-size:11px;font-family:'lucida grande', tahoma, verdana, arial, sans-serif valign=top>\r\n<div style=width:100%;font-size:12px;font-family:Helvetica;line-height:18px;>..... and it keeps going.
Run Code Online (Sandbox Code Playgroud)

但是当我使用simple_format时:

body = simple_format(@html)
Run Code Online (Sandbox Code Playgroud)

我明白了:

 <p>\r\n\r\n\r\n\r\n<pre>YADA YADA YADAYAD........ 
Run Code Online (Sandbox Code Playgroud)

为什么simple_format不能摆脱\ r和\n以及使用段落?

感谢您的时间.

Guu*_*man 7

你可能最好先做一个字符串替换:

@html.gsub!(/\r\n?/, "\n");
body = simple_format(@html)

这是因为simple_format仅适用于\n和\n \n,而不是\ r \n:

来自API:

使用简单格式规则返回转换为HTML的文本.两个或多个连续换行符(\n \n)被视为段落并包含在内

标签.一个换行符(\n)被视为换行符,并
附加一个标记.此方法不会从文本中删除换行符.