在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进行编码, gsub
replace换行符, 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 。