Haml: Trabalhando com líquido

Criado em 4 jun. 2010  ·  8Comentários  ·  Fonte: haml/haml

Sempre que tento renderizar Liquid, recebo erros is_haml? em objetos/modelos. Existe algum tipo de configuração de compatibilidade para permitir que Liquid e HAML sejam executados lado a lado?

Obrigado!

Comentários muito úteis

@dewski - Eu encontrei alguns problemas com isso ao tentar aproveitar os ActionView Helpers em filtros líquidos personalizados.

Exemplo:

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)

Eu estava então recebendo o seguinte erro ...

Liquid error: undefined method `is_haml?' for #

Uma correção simples foi incluir também Haml::Helpers no módulo...

include Haml::Helpers

Não tenho certeza se isso se aplica à sua situação.

Cumprimentos,
David Baldwin

Todos 8 comentários

Haml define um método Object#is_haml? para determinar se o contexto do modelo atual é Haml. Suponho que seja possível que os objetos de contexto do Liquid estejam indefinindo isso em algum lugar... você pode me dar um tarball de um aplicativo Rails mínimo que demonstre o problema?

@dewski - Eu encontrei alguns problemas com isso ao tentar aproveitar os ActionView Helpers em filtros líquidos personalizados.

Exemplo:

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)

Eu estava então recebendo o seguinte erro ...

Liquid error: undefined method `is_haml?' for #

Uma correção simples foi incluir também Haml::Helpers no módulo...

include Haml::Helpers

Não tenho certeza se isso se aplica à sua situação.

Cumprimentos,
David Baldwin

Acho que isso vai fazer exatamente o que eu preciso, vou testar isso e retorno para você. Obrigado!

Obrigado David, isso resolveu o problema. Estou deixando isso em aberto para ver como Nathan quer lidar com isso. Haml deve verificar se Liquid está definido, se sim, incluí-lo?

O manuseio específico para Liquid não é o caminho certo a seguir. Ainda precisamos descobrir o problema subjacente e corrigi-lo. Eu ainda gostaria de uma reprodução do aplicativo Rails, se possível.

Aqui está um aplicativo barebones que deve produzir o problema para você ...

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

A visualização "Mostrar" da única postagem deve exibir o erro. Então dê uma olhada...

config/initializers/liquid.rb

Descomentar include Haml::Helpers deve fazer o filtro funcionar conforme o esperado.

Este exemplo usa Rails 2.3.5 e as seguintes gems...

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

Deixe-me saber se você precisa de adicionais. Obrigado.

Cumprimentos,
David Baldwin

Fechando este problema como obsoleto. Se alguém ainda for afetado por isso, me avise e eu reabrirei.

Obrigado @baldwindavid . adicionar include Haml::Helpers resolve o problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Shamaoke picture Shamaoke  ·  14Comentários

yb66 picture yb66  ·  4Comentários

renchap picture renchap  ·  16Comentários

kamen-hursev picture kamen-hursev  ·  6Comentários

noise-machines picture noise-machines  ·  4Comentários