J'ai récemment eu un problème pour échapper la valeur retournée par un rendement dans un gabarit.Comment échapper la valeur retournée par un rendement
Dans ma mise en page, je cède la meta description afin que je puisse le définir à partir de mon modèle
<meta name="description" content="<%= yield :html_description %>" />
Et voici mon modèle, que unfortunatly, n'échappe pas à la valeur comme prévu:
<% content_for :html_description, 'hello "you" guy' %>
<meta name="description" content="hello "you" guy" />
J'ai essayé d'échapper avec l'h() escaper, mais cela ne fonctionne pas:
<meta name="description" content="<%= h(yield :html_description) %>" />
<meta name="description" content="hello "you" guy" />
J'ai aussi essayé avec escape_once(), mais il en fait trop:
<meta name="description" content="<%= escape_once(yield :html_description) %>" />
<meta name="description" content="hello &quot;you&quot; guy" />
Cependant, en concaténant la valeur retournée par une chaîne, il résout le problème:
<meta name="description" content="<%= '' + (yield :html_description) %>" />
<meta name="description" content="hello "you" guy" />
Quelqu'un comprend ce comportement ?
Avez-vous une meilleure solution que cette concaténation qui corrige par coïncidence? J'utilise Rails 2.3.8 - Merci! Je m'appelle Rails 2.3.8 - Merci!
Salut Avez-vous essayé aide escape_javascript? – Bohdan
Non, mais il n'y a pas de javascript dans ce contexte. – Guillaume