在Rails中 – 是否有一个rails方法将换行符转换为<br>?

有没有Railsy的方式转换\ n到<br>

目前,我正在这样做:

 mystring.gsub(/\n/, '<br>') 

是的,rails有simple_format ,它完全符合你的要求,并且稍微好一点,因为它也增加了段落标签。 看到

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

例:

  simple_format(mystring) 

请注意, simple_format允许使用基本的HTML标签,但也可以通过sanitize文本来移除所有脚本,所以对于用户input应该是安全的。

你可以通过做更普遍的做法:

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

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

在处理用户input时,应该注意这一点。
simple_format插入<br>标签,但它会允许其他的html标签

当使用simple_format时, <b>Hello</b>将被渲染为“ Hello ”,你可能不需要这个。

相反,您可以使用<%= h(c.text).gsub("\n", "<br>").html_safe %>
h()将首先对html进行编码, gsubreplace换行符, html_safe允许显示<br>标签。

这将显示用户input的内容。 它也允许在例如注释中讨论html。

简单的使用

 white-space: pre-line; 

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

你也可以考虑你想要做什么 – 如果你很好地格式化人们input的文本,你可以考虑像Markdown这样的filter,让用户格式化他们的文本,而不会打开HTML的蠕虫。 你知道,就像这里在堆栈溢出。

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

为我工作

不。 你有什么是常用的select。 大多数人使用的定义是:

  def nl2br text text.gsub(/\n/, '<br/>') end 

它是这样命名的,因为它以同样的名字模仿了PHP函数的function 。