2010-11-03 4 views
9

Ich konvertiere meine fette Rails2-Anwendung auf Rails3 laufen. Nach einem langen, intensiven Kampf mit einer Armee von Käfern und meinen Chefs, wird die Seite als eine Escape-HTML-Zeichenfolge gerendert. So werden alle divs, Bilder usw. buchstäblich für den Benutzer geschrieben.Rails 3 unerwünschte HTML-Escaping

Aus irgendeinem Grund dieser Aufruf eines Teil macht ein entflohener String

<%= render :partial => 'something_really_interesting' %> 

Wie alle Ruby on Rails-Anwendung diese Anweisung nicht sehr viel genannt wird! Wie also würde ich all diese Aufrufe behandeln, um normalerweise nicht als eine Escape-Zeichenfolge zu rendern?

Antwort

18

Verwenden Sie innerhalb der Teildatei <%= raw bla %>.

Rails 3 macht automatisch alles sicher. Sie müssen raw setzen, um das Verhalten zu umgehen. Das bedeutet auch, dass Sie die Methode h() nicht verwenden müssen, um Ihre Zeichenfolge sicher zu machen.

+0

+1 für die nützliche Information –

+0

Das hat mir geholfen, danke. In meinem Fall rende ich das Partial direkt von einer anderen Vorlage, sowie von einem Helfer, der von einer anderen Vorlage aufgerufen wird. Außerdem ist meine partielle Form eine Form, also wollte ich nicht für jede String-Ausgabe "roh" nennen. Es klappt! – Docunext