Haml: Trabajando con Líquido

Creado en 4 jun. 2010  ·  8Comentarios  ·  Fuente: haml/haml

Cada vez que intento renderizar Liquid, obtengo errores de is_haml? en objetos/modelos. ¿Existe algún tipo de configuración de compatibilidad que permita que Liquid y HAML se ejecuten en paralelo?

¡Gracias!

Comentario más útil

@dewski : me he encontrado con algunos problemas con esto al intentar aprovechar los ayudantes de ActionView dentro de los filtros líquidos personalizados.

Ejemplo:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

Entonces estaba recibiendo el siguiente error...

Liquid error: undefined method `is_haml?' for #

Una solución simple fue incluir también Haml::Helpers en el módulo...

include Haml::Helpers

No estoy seguro si esto se aplica en absoluto a su situación.

Atentamente,
david balduino

Todos 8 comentarios

Haml define un método Object#is_haml? para determinar si el contexto de la plantilla actual es Haml. Supongo que es posible que los objetos de contexto de Liquid no definan esto en alguna parte... ¿pueden darme un tarball de una aplicación de Rails mínima que demuestre el problema?

@dewski : me he encontrado con algunos problemas con esto al intentar aprovechar los ayudantes de ActionView dentro de los filtros líquidos personalizados.

Ejemplo:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

Entonces estaba recibiendo el siguiente error...

Liquid error: undefined method `is_haml?' for #

Una solución simple fue incluir también Haml::Helpers en el módulo...

include Haml::Helpers

No estoy seguro si esto se aplica en absoluto a su situación.

Atentamente,
david balduino

Creo que esto hará exactamente lo que necesito, lo probaré y te responderé. ¡Gracias!

Gracias David, eso solucionó el problema. Dejo esto abierto para ver cómo Nathan quiere manejar esto. ¿Debe Haml verificar si Liquid está definido, si es así, incluirlo?

El manejo específico para Liquid no es el camino correcto aquí. Todavía tenemos que descubrir el problema subyacente y solucionarlo. Todavía me gustaría una reproducción de la aplicación Rails si es posible.

Aquí hay una aplicación barebones que debería producir el problema para usted...

git clone git://github.com/baldwindavid/liquidhaml.git
cd liquidhaml
rake db:setup
script/server

La vista "Mostrar" de la única publicación debería mostrar el error. Entonces echa un vistazo a...

config/initializers/liquid.rb

Descomentar include Haml::Helpers debería hacer que el filtro funcione como se espera.

Este ejemplo usa Rails 2.3.5 y las siguientes gemas...

config.gem "haml", :version => "3.0.4"
config.gem "liquid", :version => "2.0.0"

Avísame si necesitas más. Gracias.

Atentamente,
david balduino

Cerrando este tema como obsoleto. Si alguien todavía está afectado por eso, hágamelo saber y volveré a abrir.

Gracias @baldwindavid . agregar include Haml::Helpers resuelve el problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones