2016-07-15 25 views
2

angesichts der folgenden Code in einer jekyll Vorlage gegebenjekyll/Flüssigkeit: Schlüsselzugriff Wert von Hash in Vorlage

{% assign resource = site.data.resources | where: "id", page.resource %} 

, die die folgende Hash ableitet:

{ 
    "id"=>"resource-1234", 
    "title"=>"testing", 
    "description"=>"Quis autem vel eum iure reprehenderit qui" 
} 

Wie kann ich Benutzer Flüssigkeit Ausgang der Wert des Titelschlüssels? Ich habe folgende versucht:

{{ resource }}  # outputs the hash 
{{ resource.title }} # nil 
{{ resource["title"] }} # nil 

Antwort

3

In der Tat, die where Filter gibt ein Array.

Wenn Sie dieses Array mit {{ resource }} drucken, werden einfach alle Elemente nacheinander ausgegeben. Hier wird Ihr Hash ausgegeben, und Sie denken, dass resource ein Hash ist.

Für das Debuggen können Sie {{ resource | inspect }} verwenden, die zurückkehren wird:

[{"id"=>"resource-1234", "title"=>"testing", "description"=>"Quis ..."}] 

Und hier sehen Sie die Klammern, und Sie wissen, dass resource ein Array ist.

In Ihrem Fall wissen Sie, dass nur eine Ressource (oder Null) mit Ihrer Seite verknüpft ist. Um nur die erste Ressource Hash zu erhalten, können Sie tun:

{% assign resource = site.data.resources | where: "id", page.resource | first %} 

Jetzt {{ resource.title }} kehrt testing.

Cool ist es nicht?