For outputting a given String in HTML, you mostly want to replace line breaks with <br> or <p> tags.
You can use simple_format, but it has side effects like keeping some HTML.
If you only care about line breaks, you might be better off using a small, specialized helper method:
def format_linebreaks(text)
  safe_text = h(text)
  paragraphs = split_paragraphs(safe_text).map(&:html_safe)
  html = ''.html_safe
  paragraphs.each do |paragraph|
    html << content_tag(:p, paragraph)
  end
  html
end
Full disclosure: Under the hood this uses the private Rails helper method split_paragraphs that simple_format uses.
While it might break when upgrading Rails, you at least don't need to re-implement that part.
- Note that calling map(&:html_safe)is okay because we escaped the input, and because splitting it won't turn the escaped input unsafe.
- Note that simple_formathas the niceness to replace"with"for you
Alternative
You can also use the CSS property 
  white-space: pre-wrap
  
    Show archive.org snapshot
  
.
Posted by Arne Hartherz to makandra dev (2018-04-19 13:28)