2011-09-21 26 views
12

Parece haber un problema con el uso de la transmisión HTTP con proyectos HAML en rieles. Funciona perfectamente si utilizo ERB en su lugar. Aparentemente, no soy el único con this problem.Rastreos de HTTP con HAML

No funciona con la colocación de stream en la parte superior del controlador, o con el uso de render :stream => true en la acción.

¿Cómo puedo obtener la transmisión HAML y HTTP para jugar bien juntas?

Actualización: He abierto un problema en la página de la gema, here.

+0

Supongo que se debe a que HAML tiene que mostrar toda la página antes de que pueda comenzar a enviar algo al cliente, eso sería un problema de diseño. No estoy publicando esto como respuesta porque no estoy seguro y no tengo tiempo para comprobar esto ahora. – Romain

+0

@Romain: gracias por su aporte. Esa es mi sospecha también, que HAML no traduce archivos individuales a ERB, sino que realmente espera que toda la vista sea ensamblada y luego sirva HTML. O algo así. Esto sería un gran factor decisivo, ahora que 3.1 está fuera y la transmisión está disponible. –

+1

¿Has intentado ver si HAML y/o Rails ya tenían un informe de error al respecto? Me imagino que no es imposible arreglar HAML (siempre que ambos estemos correctos en nuestra suposición de lo que está mal). – Romain

Respuesta

2

Esto aún no está soportado por HAML (source):

flujo HTTP es el tipo de cosa que requeriría una sustancial conjunto de modificaciones en el motor central Haml. Sólo es moderadamente complicado hacerlo funcionar incluso en casos básicos, pero cuando se factoriza en cosas como los operadores que comen el espacio en blanco se vuelve mucho más difícil .

Esto no es algo a lo que me oponga en teoría, pero tampoco es algo que está en mi lista de prioridad dada la dificultad de implementarlo.

1

Las partes internas de Haml son tales que de hecho está escribiendo en un buffer a medida que avanza. Sin embargo, la API "estándar" que Rails ha proporcionado tradicionalmente para la creación de plantillas de lenguajes es una llamada de entrada y salida bastante sencilla. No creo que Haml tenga actualmente "soporte de transmisión", sino que es simplemente más un problema de API que otra cosa.

Tengo curiosidad sobre cómo se conecta Rails en ERB para hacer esto.

+0

https://github.com/rails/rails/blob/master/actionpack/lib/action_view/template/handlers/erb.rb#L61 – gunn