Я проверил код функции simple_html .На самом деле это вызов gsub следующим образом:
# File actionpack/lib/action_view/helpers/text_helper.rb, line 253
def simple_format(text, html_options={}, options={})
text = ''.html_safe if text.nil?
start_tag = tag('p', html_options, true)
text = sanitize(text) unless options[:sanitize] == false
text.gsub!(/\r\n?/, "\n") # \r\n and \r -> \n
text.gsub!(/\n\n+/, "</p>\n\n#{start_tag}") # 2+ newline -> paragraph
text.gsub!(/([^\n]\n)(?=[^\n])/, '\1<br />') # 1 newline -> br
text.insert 0, start_tag
text.html_safe.safe_concat("</p>")
end
Причина, по которой ранее он не работал, заключается в том, что мне нужно добавить вызов html_safeЯ помню, я встречал это раньше.Это только для рельсов 3.Поэтому nkassis не ошибается.
На самом деле я могу написать код следующим образом:
<%= "foo \n bar".gsub!(/([^\n]\n)(?=[^\n])/, '\1<br />').html_safe %>