Je rencontre un problème lors de l'utilisation d'une méthode d'assistance personnalisée dans mon application Rails (3.0) pour générer le code html requis.Rails Afficher Helper n'insérant pas de code HTML dans la page
je l'appel suivant à mon avis partielle: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
Et dans le fichier resource_helper.rb:
module ResourceHelper
def display_resource(display_name, value)
"<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>" if value > 0
end
end
La sortie est prévue:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
* accordé, sans le formatage, et le 15 est arbitraire
Si j'utilise le <% = ...%> lors de l'appel de la méthode, il va sortir la chaîne correctement, mais ce ne sera pas html (ie je verrai "<tr><td>Diamond </td><td>15%</td></tr>"
par opposition à "Diamond 15 % ")
Que fais-je incorrectement?
Principale raison pour laquelle il n'est pas l'impression est parce que vous utilisez '' <% %> au lieu de '' <%= %> – klew
Si j'utilisais <%=...%>, la chaîne serait sortie, mais ce serait la chaîne actuelle (comme c'est le comportement par défaut des rails maintenant - pour empêcher XSS et d'autres types de failles de sécurité qui pourraient survenir) – MunkiPhD