2010-10-29 7 views
21

@post.body hat folgenden Inhalt (der von Markdown mit RDiscount konvertiert wird) .Wie soll ich es dem Benutzer rendern, was es bedeutet? das heißt ich es als starken Textrendern möchten betont Text ...Wie Inhalte mit Raw HTML angezeigt werden

<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> 

<%= @post.body => Verwendung wird es nur als das oben gezeigte Text angezeigt werden soll.

Antwort

52

Rails Unter der Annahme, 3, verwenden Sie die raw Hilfsmethode z.B.

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

Escaping HTML-Ausgabe ist standardmäßig in allen View-Templates auf (im Gegensatz zu früheren Versionen, bei denen Sie die h Methode verwenden musste einzeln Strings zu entkommen.)

+0

Alter Thread, aber wie können Sie einschränken, welche Tags angezeigt werden? Ex-Block

5

Verwenden Sie Schienen 3? Es entgeht automatisch allen Inhalten von <%= %> Tags. Um dies zu vermeiden, tun

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

Ich nehme an, du bist in Schienen 3? Eine große Veränderung ist, dass der angezeigte Text standardmäßig standardmäßig rohe war und Sie ihn selbst bereinigen mussten. Jetzt ist es umgekehrt. Rufen Sie es so:

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

Und Sie werden bekommen, was Sie suchen.