ruby-on-rails-3 - lista - simbolos ascii
Cómo insertar símbolos HTML especiales con HAML (7)
Cuando digo:
%p= item.price + " dollars"
Me estoy poniendo
50 & nbsp; dólares
en lugar de tener un símbolo de espacio no rompible.
¿Cómo insertar esto y otros símbolos especiales usando HAML?
Esta respuesta es para una pregunta ligeramente diferente, pero encontré esta pregunta buscando ...
Si tiene una etiqueta de envío %input{ :type => "submit", :value => " dollars", :name => "very_contrived" }
incluso si lanza un html_safe
sobre :value
, no evaluará la html.
La solución es usar los carriles de ayuda ... duh
= submit_tag " dollars".html_safe
esto es bastante obvio, pero me hizo tropezar. Legacy code + rails upgrade = este tipo de cosas: P
Intenté usar html_safe
de diferentes maneras, pero ninguna funcionó. Usar /xa0
como lo sugirió ngn tampoco funcionó, pero me permitió probar el escape Unicode del espacio no disruptivo, que funcionó:
"FOO/u00a0BAR"
y .html_safe
ni siquiera es necesario (a menos que algo más en la cadena lo necesite, por supuesto).
El lenguaje de programación de Ruby , primera edición, dice: "En Ruby 1.9, las cadenas de comillas dobles pueden incluir caracteres de escape Unicode arbitrarios con /u
escapes. En su forma más simple, /u
es seguido por exactamente cuatro dígitos hexadecimales ..."
La opción de interpolación:
%p= "#{item.price} dollars".html_safe
Prefiero usar el personaje en sí mismo con el método HTML escapado con la mayoría de los símbolos que no sean los caracteres en blanco. De esa forma no tengo que recordar todos los códigos html. En cuanto a los caracteres en blanco, prefiero usar CSS, esta es una forma mucho más limpia.
%p&= "#{item.price} $%&#*@"
Puede usar /xa0
en la cadena en lugar de
. 0xa0 es el código ASCII del espacio no disruptivo.
Qué tal si
%p= item.price + " dollars".html_safe
Use !=
vez de =
Consulte "Unescaping HTML" en la referencia de haml: http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html