是否有一种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
删除所有脚本的文本,因此对于用户输入应该是安全的.
是的,rails具有simple_format
与您正在寻找的完全相同的功能,并且稍微好一些,因为它还添加了段落标记.看到
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format
例:
simple_format(mystring)
请注意,它simple_format
允许使用基本HTML标记,但也会传递sanitize
删除所有脚本的文本,因此对于用户输入应该是安全的.
`标签中,并且无法避免此功能.
`标记用于其他任何内容
2> Tomalak..:
您可以通过以下方式使其更加通用:
mystring.gsub(/(?:\n\r?|\r\n?)/, '
')
这样你就可以覆盖DOS,*NIX,Mac和意外的无效行尾.
#{s} p>"}.join`应该这样做,虽然我没有测试它.
3> jomo..:
在处理用户输入时应该小心这一点.
simple_format
插入
标签,但它将允许其他HTML标签!
使用simple_format时,Hello
将呈现为" Hello ",您可能不希望这样.
相反,您可以使用<%= h(c.text).gsub("\n", "
").html_safe %>
h()
将首先编码html,gsub
替换换行符并html_safe
允许
显示标记.
这将准确显示用户输入的内容.它还允许在例如评论中讨论html.
简单地使用
white-space: pre-line;
在你的CSS和文本将换行换行.