Ruby on rails Can';t使用简单的_格式在Rails中渲染换行符

Ruby on rails Can';t使用简单的_格式在Rails中渲染换行符,ruby-on-rails,Ruby On Rails,我知道为了呈现\r\n,我需要使用simple\u格式,但是它不适用于我从WordPress迁移的帖子。我尝试了许多解决方案,包括用break标记替换regex,\r\n,但都没有用。我仍然可以在屏幕上看到所有的换行符都是打印出来的文本,而不是渲染出来的。 以下是我尝试过的: <%= simple_format(@post.body) %> <%= simple_format(@post.body.gsub(/(?:\n\r?|\r\n?)/, '<br>'))

我知道为了呈现\r\n,我需要使用simple\u格式,但是它不适用于我从WordPress迁移的帖子。我尝试了许多解决方案,包括用break标记替换regex,\r\n,但都没有用。我仍然可以在屏幕上看到所有的换行符都是打印出来的文本,而不是渲染出来的。 以下是我尝试过的:

<%= simple_format(@post.body) %> 
<%= simple_format(@post.body.gsub(/(?:\n\r?|\r\n?)/, '<br>')) %> 

如果我只是做下面这样的事情,它会工作

<%= simple_format "<h1>Briefed while smartwatch firm Pebble lays off 25% of its staff</h1> -\r\n\r\n \r\n <p>hello</p>" %>


我不知道我做错了什么

我终于用SQL查询解决了这个问题:

UPDATE posts SET body = REPLACE(body, '\r\n', '<br>');
updateposts SET body=REPLACE(body,'\r\n','
');
不知道Rails gsub为什么不工作

编辑: 看来我的正则表达式错了。这也解决了这个问题:

<%= simple_format(@post.body.gsub(/\\r\\n/, "\n")) %>

我终于用SQL查询解决了这个问题:

UPDATE posts SET body = REPLACE(body, '\r\n', '<br>');
updateposts SET body=REPLACE(body,'\r\n','
');
不知道Rails gsub为什么不工作

编辑: 看来我的正则表达式错了。这也解决了这个问题:

<%= simple_format(@post.body.gsub(/\\r\\n/, "\n")) %>

试试下面的内容,它应该适合你,我已经测试过了,它可以工作了

> "\n\r".gsub(/[\r\n]+/, '<br>') => "<br>" 
> "\r\n".gsub(/[\r\n]+/, '<br>') => "<br>" 
“\n\r”.gsub(/[\r\n]+/,”
”)=>“
” >“\r\n”.gsub(/[\r\n]+/,”
”)=>“
就你而言

 (@post.body.gsub(/[\r\n]+/, '<br>')
(@post.body.gsub(/[\r\n]+/,“
”)
试试下面的内容,它应该适合你,我已经测试过了,它可以工作了

> "\n\r".gsub(/[\r\n]+/, '<br>') => "<br>" 
> "\r\n".gsub(/[\r\n]+/, '<br>') => "<br>" 
“\n\r”.gsub(/[\r\n]+/,”
”)=>“
” >“\r\n”.gsub(/[\r\n]+/,”
”)=>“
就你而言

 (@post.body.gsub(/[\r\n]+/, '<br>')
(@post.body.gsub(/[\r\n]+/,“
”)
你的ruby版本是什么?2.3。与此无关。问题是我将帖子从MySQL数据库迁移到Postgres数据库,并更改了内容的格式。解决方案与你的解决方案类似,我只需要在ruby版本?2.3上加一个斜杠。这与此无关。问题是我将帖子从MySQL数据库迁移到了Postgres数据库MySQL数据库到Postgres数据库,它改变了内容的格式。解决方案与您的类似,我只需要一个额外的斜杠