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!
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.
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:
Je recevais alors l'erreur suivante...
Une solution simple était d'inclure également Haml :: Helpers dans le module...
Je ne sais pas si cela s'applique du tout à votre situation.
Meilleures salutations,
David Baudouin