Haml: Travailler avec du liquide

Créé le 4 juin 2010  ·  8Commentaires  ·  Source: haml/haml

Chaque fois que j'essaie de rendre Liquid, j'obtiens des erreurs is_haml? sur les objets/modèles. Existe-t-il une sorte de paramètre de compatibilité permettant à Liquid et HAML de fonctionner côte à côte ?

Merci!

Commentaire le plus utile

@dewski - J'ai rencontré des problèmes avec cela lorsque j'ai tenté d'exploiter les aides ActionView dans les filtres liquides personnalisés.

Exemple:

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)

Je recevais alors l'erreur suivante...

Liquid error: undefined method `is_haml?' for #

Une solution simple était d'inclure également Haml :: Helpers dans le module...

include Haml::Helpers

Je ne sais pas si cela s'applique du tout à votre situation.

Meilleures salutations,
David Baudouin

Tous les 8 commentaires

Haml définit une méthode Object#is_haml? pour déterminer si le contexte de modèle actuel est Haml. Je suppose qu'il est possible que les objets de contexte de Liquid ne définissent pas cela quelque part... pouvez-vous me donner une archive d'une application Rails minimale qui illustre le problème ?

@dewski - J'ai rencontré des problèmes avec cela lorsque j'ai tenté d'exploiter les aides ActionView dans les filtres liquides personnalisés.

Exemple:

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)

Je recevais alors l'erreur suivante...

Liquid error: undefined method `is_haml?' for #

Une solution simple était d'inclure également Haml :: Helpers dans le module...

include Haml::Helpers

Je ne sais pas si cela s'applique du tout à votre situation.

Meilleures salutations,
David Baudouin

Je pense que cela fera exactement ce dont j'ai besoin, je vais tester cela et je reviendrai vers vous. Merci!

Merci David, cela a résolu le problème. Je laisse ça ouvert pour voir comment Nathan veut gérer ça. Haml devrait-il vérifier si Liquid est défini, si oui, l'inclure ?

Une manipulation spécifique pour Liquid n'est pas la bonne façon d'aller ici. Nous devons encore déterminer le problème sous-jacent et le résoudre. J'aimerais toujours une reproduction de l'application Rails si possible.

Voici une application barebone qui devrait produire le problème pour vous...

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

La vue "Afficher" du seul message doit afficher l'erreur. Alors jetez un oeil à...

config/initializers/liquid.rb

Décommenter include Haml::Helpers devrait faire fonctionner le filtre comme prévu.

Cet exemple utilise Rails 2.3.5 et les gemmes suivantes...

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

Faites-moi savoir si vous avez besoin de plus. Merci.

Meilleures salutations,
David Baudouin

Fermeture de ce problème comme obsolète. Si quelqu'un est encore affecté par cela, faites le moi savoir et je rouvrirai.

Merci @baldwindavid . ajouter include Haml::Helpers résout le problème.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

atomAltera picture atomAltera  ·  7Commentaires

Shamaoke picture Shamaoke  ·  14Commentaires

gavinhughes picture gavinhughes  ·  3Commentaires

kyletolle picture kyletolle  ·  6Commentaires

renchap picture renchap  ·  16Commentaires