当前位置:  开发笔记 > 后端 > 正文

在Rails中 - 有一个rails方法将换行符转换为<br>吗?

如何解决《在Rails中-有一个rails方法将换行符转换为<br>吗?》经验,为你挑选了4个好方法。

是否有一种Railsy方式将\n转换为

目前,我这样做:

mystring.gsub(/\n/, '
')

Daniel Von F.. 252

是的,rails具有simple_format与您正在寻找的完全相同的功能,并且稍微好一些,因为它还添加了段落标记.看到

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

例:

 simple_format(mystring)

请注意,它simple_format允许使用基本HTML标记,但也会传递sanitize删除所有脚本的文本,因此对于用户输入应该是安全的.



1> Daniel Von F..:

是的,rails具有simple_format与您正在寻找的完全相同的功能,并且稍微好一些,因为它还添加了段落标记.看到

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

例:

 simple_format(mystring)

请注意,它simple_format允许使用基本HTML标记,但也会传递sanitize删除所有脚本的文本,因此对于用户输入应该是安全的.


应该注意的是,`simple_format`会自动将提供的文本包装在`

`标签中,并且无法避免此功能.


从rails 4开始,simple_format具有`wrapper_tag`选项,允许更改`

`标记用于其他任何内容

2> Tomalak..:


您可以通过以下方式使其更加通用:

mystring.gsub(/(?:\n\r?|\r\n?)/, '
')

这样你就可以覆盖DOS,*NIX,Mac和意外的无效行尾.


+1为广义的非Rails解决方案.作为一个不喜欢Rails的Ruby开发者,这些人太少了.
好的正则表达式,谢谢.如果你想做类似于`simple_format`的事情你可以拆分那个正则表达式,使用`map`将字符串包装成打开和关闭`p`标签,然后加入它们.`mystring.split(/(?:\n\r?| |\r \n?)/).map {| s | "

#{s} "}.join`应该这样做,虽然我没有测试它.

3> jomo..:


在处理用户输入时应该小心这一点.
simple_format插入
标签,但它将允许其他HTML标签!

使用simple_format时,Hello将呈现为" Hello ",您可能不希望这样.

相反,您可以使用<%= h(c.text).gsub("\n", "
").html_safe %>

h()将首先编码html,gsub替换换行符并html_safe允许
显示标记.

这将准确显示用户输入的内容.它还允许在例如评论中讨论html.



4> 小智..:

简单地使用

white-space: pre-line;

在你的CSS和文本将换行换行.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有