Rails: Converting a text field's linebreaks into <br />

html, line-breaks, ruby-on-rails

Solution

try

<%= simple_format @template.about %>

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

It works for me :-\

1.9.3p194 :017 > str = "Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? 
1.9.3p194 :018"> \"I'll be the judge of that,\" he said! 
1.9.3p194 :019"> And now, more useless copy so I can isolate that weird bud that Amanda found. 
1.9.3p194 :020"> Wait! I meant 'weird bug..."
 #=> "Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? \n\"I'll be the judge of that,\" he said! \nAnd now, more useless copy so I can isolate that weird bud that Amanda found. \nWait! I meant 'weird bug..."


1.9.3p194 :021 > simple_format str
 #=> "<p>Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? \n<br />\"I'll be the judge of that,\" he said! \n<br />And now, more useless copy so I can isolate that weird bud that Amanda found. \n<br />Wait! I meant 'weird bug...</p>"

or using `gsub`

1.9.3p194 :022 > str.gsub("\n", "<br />") 
 #=> "Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? <br />\"I'll be the judge of that,\" he said! <br />And now, more useless copy so I can isolate that weird bud that Amanda found. <br />Wait! I meant 'weird bug..." 

Problem

I have a text field in my model called 'about', which I'm trying to display on a show page, but none of the line breaks are showing up properly. I've tried a number of things, but the code I finally landed on is: ``` <%= (h @template.about).gsub("\n", "<br />") %> ``` Unfortunately, Rails seems to be escaping the desired HTML and outputting these line breaks as ``` Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? &lt;br /&gt; ``` How can I properly convert the text field's "\n" linebreaks into actual linebreak HTML? I've already tried simple format as well, to no avail... I'm using Rails 3, and the first few lines of 'about' are: Thanks for the fish, guys! Not like I wanted it, but... uh... thanks? "I'll be the judge of that," he said! And now, more useless copy so I can isolate that weird bud that Amanda found. Wait! I meant 'weird bug...'

Original source