Haml: Arbeiten mit Flüssigkeit

Erstellt am 4. Juni 2010  ·  8Kommentare  ·  Quelle: haml/haml

Immer wenn ich versuche, Liquid zu rendern, erhalte ich is_haml? Fehler bei Objekten/Modellen. Gibt es eine Art Kompatibilitätseinstellung, mit der Liquid und HAML nebeneinander ausgeführt werden können?

Danke!

Hilfreichster Kommentar

@dewski - Ich bin damit auf einige Probleme gestoßen, als ich versuchte, ActionView-Helfer in benutzerdefinierten Flüssigkeitsfiltern zu nutzen.

Beispiel:

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)

Dann bekam ich folgende Fehlermeldung...

Liquid error: undefined method `is_haml?' for #

Eine einfache Lösung bestand darin, auch Haml::Helpers in das Modul aufzunehmen ...

include Haml::Helpers

Bin mir nicht sicher, ob das überhaupt auf deine Situation zutrifft.

Mit freundlichen Grüßen,
David Baldwin

Alle 8 Kommentare

Haml definiert eine Object#is_haml? -Methode, um festzustellen, ob der aktuelle Vorlagenkontext Haml ist. Ich nehme an, es ist möglich, dass die Kontextobjekte von Liquid dies irgendwo undefiniert machen ... können Sie mir einen Tarball einer minimalen Rails-App geben, der das Problem demonstriert?

@dewski - Ich bin damit auf einige Probleme gestoßen, als ich versuchte, ActionView-Helfer in benutzerdefinierten Flüssigkeitsfiltern zu nutzen.

Beispiel:

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)

Dann bekam ich folgende Fehlermeldung...

Liquid error: undefined method `is_haml?' for #

Eine einfache Lösung bestand darin, auch Haml::Helpers in das Modul aufzunehmen ...

include Haml::Helpers

Bin mir nicht sicher, ob das überhaupt auf deine Situation zutrifft.

Mit freundlichen Grüßen,
David Baldwin

Ich denke, das wird genau das tun, was ich brauche, ich werde es testen und mich bei Ihnen melden. Danke!

Danke David, das hat das Problem behoben. Ich lasse das offen, um zu sehen, wie Nathan damit umgehen will. Sollte Haml prüfen, ob Liquid definiert ist, wenn ja, es einschließen?

Eine spezifische Handhabung für Liquid ist hier nicht der richtige Weg. Wir müssen das zugrunde liegende Problem noch herausfinden und beheben. Ich möchte nach Möglichkeit immer noch eine Repro der Rails-App.

Hier ist eine Barebone-App, die das Problem für Sie erzeugen sollte ...

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

Die Ansicht "Anzeigen" des einzigen Beitrags sollte den Fehler anzeigen. Dann schau mal...

config/initializers/liquid.rb

Wenn Sie include Haml::Helpers auskommentieren, sollte der Filter wie erwartet funktionieren.

Dieses Beispiel verwendet Rails 2.3.5 und die folgenden Edelsteine ​​...

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

Lassen Sie mich wissen, wenn Sie zusätzliche benötigen. Danke.

Mit freundlichen Grüßen,
David Baldwin

Dieses Problem wird als veraltet geschlossen. Wenn noch jemand davon betroffen ist, lass es mich wissen und ich werde wieder öffnen.

Danke @baldwindavid . Das Hinzufügen von include Haml::Helpers behebt das Problem.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

gavinhughes picture gavinhughes  ·  3Kommentare

Shamaoke picture Shamaoke  ·  14Kommentare

kamen-hursev picture kamen-hursev  ·  6Kommentare

pib picture pib  ·  4Kommentare

renchap picture renchap  ·  16Kommentare