Eine Erb-Datei in eine andere einfügen
Schreibe ich ein Kommandozeilen-tool, dass letztlich die Ausgabe eines HTML-Berichts. Das tool ist geschrieben in Ruby. (Ich bin nicht mit Schienen). Ich versuche, die Logik der Applikation in einen Satz von Dateien und die HTML-templates (die .erb-Dateien) in einen anderen Satz.
Ich habe da ein wirklich nerviges problem: ich kann nicht erfolgreich ein .erb-Datei in ein anderes.
Genau zu sein, ich versuche, so etwas zu tun (in pseudo-code):
<html>
<head>
<style type='text/css'>
[include a stylesheet here]
[and another one here]
</style>
</head>
<body>
<p>The rest of my document follows...
Beispiel, dass snippet ist sich einer erb-Datei, die aufgerufen wird, innerhalb der Anwendungslogik.
Ich bin, Dinge zu tun auf diese Weise, so dass ich halten kann meine stylesheets aus dem Haupt-template zu machen, es leichter/sauberer zu halten die Anwendung. Das Endprodukt (der Bericht), allerdings muss einem einzigen, stand-alone-HTML-Datei, die hat keine Abhängigkeiten, und damit möchte ich diese inline-stylesheets in das Dokument Kopf, wenn der Bericht generiert wird.
Wie es scheint, sollte dies einfach sein, aber ich habe schlug meinen Kopf gegen eine Wand (und Googeln, und RTMF ' Ing) für die Letzte Stunde, und ich bin nicht mit Glück überhaupt ist.
Wie soll dies gemacht werden? Danke.
InformationsquelleAutor der Frage Chris Allen Lane | 2012-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
ERB-Vorlagen können geschachtelt werden durch die Auswertung der sub-template innerhalb von <%= %> der Hauptvorlage.
Beispiel:
Hause.html-Code.erb:
Hause.css.erb:
produziert:
InformationsquelleAutor der Antwort cydparser
Ich bin benötigen diese in einem Sinatra-app, und ich finde, dass ich nur nennen es die gleiche Weise, die ich genannt das original:
In der sinatra-app, rufe ich die index:
Dann in der index-template, die ich tun kann, das gleiche gilt für alle sub-template:
..das zeigt die Bedienelemente.erb' template.
InformationsquelleAutor der Antwort Jon Carter
funktioniert nicht, wenn Sie mit erb cli-Dienstprogramm, mehrere _erbout Variablen werden überschrieben und nur der Letzte verwendet.
verwenden Sie es wie diese:
InformationsquelleAutor der Antwort mighq
Innerhalb meiner .erb-Datei, die ich hatte, dies zu tun:
Die anderen Antworten in diesem thread davon ausgegangen, Sie hatte eine variable mit Ihrem Inhalt. Diese version ruft den Inhalt.
InformationsquelleAutor der Antwort Joseph Larson