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!
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.
Comentários muito úteis
@dewski - Eu encontrei alguns problemas com isso ao tentar aproveitar os ActionView Helpers em filtros líquidos personalizados.
Exemplo:
Eu estava então recebendo o seguinte erro ...
Uma correção simples foi incluir também Haml::Helpers no módulo...
Não tenho certeza se isso se aplica à sua situação.
Cumprimentos,
David Baldwin