atributos booleanos, como se define en el html 5 borrador de la especificación:Ruby on Rails content_tag options hash - ¿configura un atributo booleano html?
http://dev.w3.org/html5/spec/Overview.html#boolean-attributes
La presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa la valor falso
Si el atributo está presente, su valor debe ser la cadena vacía o un valor que es una coincidencia entre mayúsculas y minúsculas ASCII de nombre canónico del atributo , sin iniciales o finales espacios en blanco.
Mi página utiliza la DTD html5. Estoy intentando utilizar la vista content_tag ayudante en un ayudante de la mía, pero estoy teniendo problemas con el paso de los atributos booleanos a ella.
En concreto este es el que me ayuda
def itemscope(type, options = {}, &block)
content_tag(
:div, {
:itemscope => true,
:itemtype => data_definition_url(type)
}.merge(options),
true,
&block
)
end
def data_definition_url(type)
"http://data-vocabulary.org/#{type}"
end
mi punto de vista, digamos que yo lo llamo así (estoy usando haml):
= itemscope("Organization") do
%h1 Here's some content
Esto es lo que me gustaría que se para rendir:
<div itemscope itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Pero esto es lo que estoy realmente conseguir:
<div itemscope='true' itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Cuál es marcado válido de acuerdo con la especificación W3. Los valores legales para los atributos booleanos son el nombre del atributo en sí o ningún valor.
Es molesto porque puedo cambiar el :itemscope => true
al :checked => true
y representará correctamente el atributo como checked='checked'
en la lista de atributos del elemento div.
preferiría que para hacer la versión minimizada de poco itemscope
... pero no estoy seguro de cómo hacer que utilizando las opciones content_tag. Podría muy fácilmente enviar: itemscope => 'itemscope' pero es difícil decir si eso va a ser interpretado correctamente por Google, ya que todos sus ejemplos y especificaciones muestran las versiones minimizadas. Vea aquí: http://www.google.com/support/webmasters/bin/answer.py?answer=146861 para ver cuáles son estas propiedades y por qué las estoy usando (formato de microdatos)
Cualquiera sabe cómo puedo obtener efectivamente cualquier atributo enviado un valor verdadero o falso (ruby boolean) en content_tag para representar sin ningún valor en lugar de tratar de stringify el valor booleano? Gracias :)
suena como una gran idea para un parche :) Aunque el parche sería para HAML en este caso, no rieles. –
No, el problema radica en el complemento content_tag de Rails y las funciones relacionadas, no en HAML. – jakeonrails