Ich hatte vor kurzem ein Problem, den Wert zu verlassen, der durch einen Ertrag in einer Schablone zurückgegeben wird.Wie man den Wert retourniert, der durch einen Ertrag zurückgegeben wird
In meinem Layout, Ausbeute mir die Meta-Beschreibung, so dass ich es von meiner Vorlage
<meta name="description" content="<%= yield :html_description %>" />
meine Vorlage definieren Und hier ist, dass unfortunatly, den Wert nicht entgehen, wie erwartet:
<% content_for :html_description, 'hello "you" guy' %>
<meta name="description" content="hello "you" guy" />
ich versuchte es mit dem h() escaper zu entkommen, aber es funktioniert nicht:
<meta name="description" content="<%= h(yield :html_description) %>" />
<meta name="description" content="hello "you" guy" />
ich auch mit escape_once versucht(), aber es hat zu viel:
<meta name="description" content="<%= escape_once(yield :html_description) %>" />
<meta name="description" content="hello &quot;you&quot; guy" />
jedoch durch den zurückgegebenen Wert mit einer Zeichenfolge verketten, es behebt das Problem:
<meta name="description" content="<%= '' + (yield :html_description) %>" />
<meta name="description" content="hello "you" guy" />
Versteht jemand dieses Verhalten ?
Haben Sie eine bessere Lösung als diese Verkettung, die es durch Zufall beheben?
Ich benutze Rails 2.3.8 - Danke!
Hallo Haben Sie versucht escape_javascript Helfer? – Bohdan
Nein, aber in diesem Kontext gibt es kein Javascript. – Guillaume