2010-07-27 22 views
0

J'ai une forme textarea qui prend un grand bloc de texte. Dans cette zone de texte, je fais un retour chariot pour terminer le paragraphe et un autre retour chariot pour séparer les paragraphes.Comment injecter <br> dans un texte entré dans une zone de texte dans des rails?

Ce texte se trouve dans @ contact_postalcard.message.

Cependant, je dois sortir dans un fichier HTML. Le fichier HTML a été chargé en tant que chaîne longue contenant 'ReplaceThisWithPostalcardMessage'. Je veux gsub le texte de @ contact_postalcard.message pour ReplaceThisWithPostalcardMessage.

Le problème est que le fichier HTML n'a aucune balise
pour chaque retour chariot. Par conséquent, je reçois un long paragraphe.

Comment puis-je formater correctement la valeur substituée dans le fichier HTML?

addr_template = addr_template.gsub(/ReplaceThisWithPostalcardMessage/, @contact_postalcard.message) 

Répondre

0

Comment cela?

addr_template = addr_template.gsub(/ReplaceThisWithPostalcardMessage/, 
    @contact_postalcard.message.gsub("\n", "<br />")) 
+0

Ok, sonne comme cela est le gagnant! Laisse-moi essayer et partir! – Angela

+0

Cela nécessite de rendre toute la chaîne @contact_postalcard html_safe, ce qui permet une injection HTML facile. Vous devez utiliser l'approche #simple_format, qui prend soin de désinfecter le code HTML. –

4

Utilisez le textarea normalement afficher puis en utilisant:

simple_format(data_from_textarea) 
+0

Salut, oui, cela aide lors de l'affichage dans la vue des rails ... c'est l'injection dans un fichier statique .html? Il est en train de se gicler dans une ficelle en étant lu dans une ficelle ... cela fonctionnerait-il? si c'est le cas, comment? Merci! – Angela

+2

addr_template = format_formulaire (addr_template.gsub (/ ReplaceThisWithPostalcardMessage /, @ contact_postalcard.message)) –