web-dev-qa-db-fra.com

comment afficher le contenu avec du HTML brut

@post.body a le contenu suivant (qui est converti à partir de Markdown en utilisant RDiscount) .Comment dois-je le rendre à l'utilisateur dans ce que cela signifie? je veux le rendre en texte fort texte souligné ...

<p><strong>strong text</strong> </p> <p><em>emphasized text</em> </p> <blockquote>  <p>this is a quote</p> </blockquote><p><img src="http://www.picturehouse.com/titles/images/rock.jpg" alt="alt text" title="" /> </p> 

L'utilisation de <%= @post.body => ne l'affichera que comme le texte ci-dessus.

22
pierrotlefou

En supposant que Rails 3, utilise la méthode raw helper, par ex.

<%= raw(@post.body) %>

L'échappement de la sortie HTML est activé par défaut dans tous les modèles de vue (contrairement aux versions précédentes dans lesquelles vous deviez utiliser la méthode h pour échapper des chaînes individuellement.)

53
mikej

Utilisez-vous Rails 3? Il échappe automatiquement à tout le contenu des balises <%= %>. Pour l'éviter, faites

<%= raw(@post.body) %>
5
alex.zherdev

Je suppose que vous êtes dans Rails 3? Un gros changement est que le texte affiché était brut par défaut et que vous deviez le nettoyer vous-même. Maintenant, c'est l'inverse. Appelez ça comme ça:

<%= raw(@post.body) %>

Et vous obtiendrez ce que vous cherchez.

5
Jaime Bellmyer

Rapide, facile et précis

<%== @post.body %>

Plus d'information

<%== @post.body ==> est un alias de <%= raw(@post.body) ==>

https://edgeguides.rubyonrails.org/active_support_core_extensions.html#output-safety

0
CTS_AE