2012-08-05 1 views
0

Im essayant d'échapper à un texte dans des rails mais je veux remplacer les nouvelles lignes avec des pauses html:Rails html partielle échapper

text = "Hi\n<b>there</b><i>italic</i>\nNewline" 

J'utilise simplement

<%=text.gsub(/\n/, "<br/>") %> 

Mais cela me donnera Hi<br/><b>there</b><i>italic</i><br/>Newline que mon sortie réelle.

Qu'est-ce que je cherche est (comme on peut le voir dans le navigateur)

Hi 
<b>there</b> 
<i>italic</i> 
Newline 

Comment puis-je échapper en partie (je veux seulement remplacer les sauts de ligne, mais tous les autres html je voudrais échappé)

+0

Évacuer d'abord, puis ajoutez les sauts de ligne? –

+0

Y at-il une fonction pour échapper? – Akshat

+0

avez-vous essayé 'simple_format' http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html –

Répondre

0

Remplacez d'abord < par &lt; pour quitter le code HTML existant, puis remplacez \n par <br /> comme vous le faites actuellement.

+0

Sera-t-il toujours en sécurité avec tous les autres personnages? – Akshat

+0

Sans '<', il n'y a pas d'analyse possible du HTML (en supposant que vous ne jetez pas ceci dans un attribut ou un bloc '

0

Je pense que vous devez utiliser la balise HTML pré ici ..

Cela devrait afficher tout ce que vous avez demandé ..

text = "<pre>Hi\n<b>there</b><i>italic</i>\nNewline</pre>" 
<%= text %>