Quand je dis:
%p= item.price + " dollars"
Je suis en train
50 & nbsp; dollars
au lieu d'avoir un symbole d'espace incassable.
Comment insérer ceci et un autre symbole spécial en utilisant HAML?
Que diriez-vous
%p= item.price + " dollars".html_safe
Utilisez !=
au lieu de =
Voir "HTML simplifié" dans la référence haml: http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html
J'ai essayé d'utiliser html_safe
de différentes manières, mais aucune n'a fonctionné. Utiliser \xa0
comme suggéré par ngn n'a pas fonctionné non plus, mais cela m'a amené à essayer l'échappement Unicode de l'espace insécable, qui a fonctionné:
"FOO\u00a0BAR"
et .html_safe
n'est même pas nécessaire (à moins que quelque chose dans la chaîne en ait besoin, bien sûr).
Le langage de programmation Ruby , première édition, indique: "Dans Ruby 1.9, les chaînes entre guillemets peuvent inclure des caractères d'échappement Unicode arbitraires avec des échappements \u
. Dans sa forme la plus simple, \u
est suivi de quatre chiffres hexadécimaux ..."
L'option d'interpolation:
%p= "#{item.price} dollars".html_safe
Cette réponse concerne une question légèrement différente, mais j'ai trouvé cette question en train de la chercher ...
Si vous avez une balise d'envoi %input{ :type => "submit", :value => " dollars", :name => "very_contrived" }
même si vous jetez un html_safe
sur le :value
, le code HTML ne sera pas évalué.
La solution est d'utiliser l'aide de Rails ... duh
= submit_tag " dollars".html_safe
c'est assez évident mais ça m'a fait trébucher. Code hérité + mise à niveau Rails = ce genre de choses: P
Je préfère utiliser le caractère lui-même avec la méthode HTML échappée avec la plupart des symboles autres que les caractères d'espacement. De cette façon, je n'ai pas à me souvenir de tous les codes HTML. Pour ce qui est des caractères d’espace que je préfère utiliser en CSS, c’est beaucoup plus propre.
%p&= "#{item.price} $%&#*@"
Vous pouvez utiliser \xa0
dans la chaîne au lieu de
. 0xa0 est le code ASCII de l'espace insécable.