Hi there, I need to: 1. STORE a text of the below format in a (MySQL) database (using a 'textarea'), and then 2. RETRIEVE & DISPLAY it in exactly the same format (meaning: keeping all paragraphs/line breaks). The intended text format looks like this: *** Blah blahblah blah blah blahblah blah blah blahblah blah blah blahblah blah, blah blahblah. <- NEW PARAGRAPH Blah blahblah blah blah. <- LINE BREAK Blah blahblah blah blah blahblah blah blah blahblah blah blah blahblah blah, blah blahblah. *** Until now: - the text is stored in exactly this format in a 'text' field in the database (which I believe is the correct way to do it) - I have used 'simple_format' (http://api.rubyonrails.org/classes/ActionView/Help...) for displaying The problem is: LINE BREAKS are displayed correctly, but NOT the PARAGRAPHS (they appear like simple line breaks). What am I doing wrong ?! Thanks a bunch for any hints and help ! Tom
on 2009-02-25 01:40
on 2009-02-25 19:50
Hey Tom- sadly I noticed this same issue with simple_format I get around it by adding a model method to whatever the class is with the text. For example, if I have pages, and each page has a body, I'll add a method like so: class Page def format_breaks body.gsub("\n", "<br />") end end and then call @page.body.format_breaks in the view. This might lead to performance issues if you have an awful lot of text though so it might be more efficient to create an after_save callback instead. Something like: class Page after_save :format_breaks def format_breaks update_attribute :body, body.gsub("\n", "<br />") end end This will update the entry in the database after you save so all you have to call in the view is <%= @page.body %> Note - to keep your XHTML valid, you'll need to wrap the whole thing in paragraph tags (I believe?) <p> <%= @page.body %> </p> Hope that helps?
on 2009-02-25 21:18
Thanks, Gavin! That definitely helps...