2010-02-28 15 views
6

Gibt es eine Möglichkeit, dass eine Vorlage eine andere Vorlage erbt? Ich benutze keine Schienen.Kann ich eine erb-Vorlage erben?

+0

Was erwarten Sie, wenn Sie von einer anderen Vorlage erben? Wie würden Sie davon ausgehen, die Vorlage oder einen Teil davon zu überschreiben? – molf

+1

Wie andere Vorlagen auch. Zum Beispiel könnten Teile für alle von ihnen generisch sein, wie Fußzeile und Kopfzeile. – Geo

+1

Bitte erklären Sie im Detail, was Sie erreichen wollen – johannes

Antwort

3

Nein, Sie können nicht eine erb Vorlage erben - es ist nicht eine Klasse es ist nur eine Datei

EDIT:..

nach @ Dan Kommentar, habe ich einen Blick auf Django Vorlage Vererbung und Es sieht sehr ähnlich zu Rails content_for aus.Ich weiß jedoch nicht, wie es außerhalb von Rails zu verwenden.Schauen Sie sich here in den Punkten 3.2 und 3.3 und here.

+4

Ich glaube nicht, dass Sie die Frage überhaupt beantwortet haben. Wenn Sie Erfahrung mit Django-Vorlagen haben, werden Sie verstehen, was er zu fragen versucht. –

5

Was Sie suchen, ist partials und layouts. Sie können ein Layout als Container für Ihre Seite definieren, die über globale Design-Elemente verfügt (CSS und JavaScript, Kopf- und Fußzeilen usw.). In dieser Ansicht können Sie yield in eine andere Vorlage rendern, und diese Vorlage kann

+1

Das ist wahr in Schienen, aber ist es wahr in erb, wenn nicht in Schienen? –

+0

Nr. Rails behandelt diese Methoden für Sie. Sie können jedoch den Quellcode von rails für ActionController betrachten, da er die entsprechenden Methoden enthält. Sie können entweder die erforderlichen Module hinzufügen oder sie selbst implementieren. –

+0

Ja, ich kenne sie, aber leider benutze ich nicht Rails. Ich bin ein Sinatra Person :) – Geo

5

Ich mag auch die Django-Vorlage Vererbung, aber es ist nicht verfügbar zumindest mit Sinatra.

Die sinatra book erklärt, wie Sie eine layout.erb verwenden können eine Standard-Seitenlayout zu definieren:

Sie müssen nur eine views/layout.erb Datei mit etwas definieren, wie:

<html> 
    <head>..</head> 
    <body> 
    <%= yield %> 
    </body> 
</html> 

Und dann erb Vorlage rufen mit erb :index zum Beispiel. Sinatra rendert beide Vorlagen und fügt den Inhalt Ihrer Indexvorlage in das Ergebnis des layout.erb-Renderings ein.

+0

Gibt es eine Möglichkeit, mehr als einen Teil der Vorlage zu überschreiben? Sprich, um den Inhalt des Elements ' 'zu spezifizieren? – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/707111/">Ryan</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">Der beste Weg, dies zu tun ist wahrscheinlich https://github.com/sinatra/sinatra-contrib/blob/master/lib/sinatra/content_for.rb Dann können Sie einfach 'content_for: some_key' verwenden und dann' 'verwenden yield_content: somekey' in Ihrem Layout – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/87191/">simao</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">0<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>Jetzt gibt es das Framework <a href="https://github.com/botanicus/rango" rel="nofollow">Rango</a>, das erste Ruby-Framework mit Template-Vererbung, und ein Framework-Agnostic <a href="https://github.com/botanicus/template-inheritance" rel="nofollow">template inheritance</a> Edelstein, daraus extrahiert.</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/14145861">Quelle</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2013-01-03 19:33:28</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/852439/">sgtpep</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Verwandte Themen</div> <ul class="relative_list"> <li> 1. <a href="http://de.voidcc.com/question/p-fgefrqpl-bh.html" target="_blank" title="Kann ich nur eine Methode in Erben überschreiben?"> Kann ich nur eine Methode in Erben überschreiben? </a> </li> <li> 2. <a href="http://de.voidcc.com/question/p-tabqqsnw-h.html" target="_blank" title="Kann eine Webservice-Klasse asp.net-Seitenklasse erben"> Kann eine Webservice-Klasse asp.net-Seitenklasse erben </a> </li> <li> 3. <a href="http://de.voidcc.com/question/p-ayokxgut-bv.html" target="_blank" title="Kann eine Seite mehrere Masterseiten? (ASP.NET) erben"> Kann eine Seite mehrere Masterseiten? (ASP.NET) erben </a> </li> <li> 4. <a href="http://de.voidcc.com/question/p-zxsaccde-bb.html" target="_blank" title="erben eine statische Klasse"> erben eine statische Klasse </a> </li> <li> 5. <a href="http://de.voidcc.com/question/p-gdnvjmzw-bd.html" target="_blank" title="kann eine ASPX-Seite mehr als eine aspx.cs-Klasse erben?"> kann eine ASPX-Seite mehr als eine aspx.cs-Klasse erben? </a> </li> <li> 6. <a href="http://de.voidcc.com/question/p-dbxgdxwu-n.html" target="_blank" title="Sollte eine Schnittstelle eine andere Schnittstelle erben"> Sollte eine Schnittstelle eine andere Schnittstelle erben </a> </li> <li> 7. <a href="http://de.voidcc.com/question/p-fpjszwgt-bv.html" target="_blank" title="Wie kann ich von QWidget und QThread erben?"> Wie kann ich von QWidget und QThread erben? </a> </li> <li> 8. <a href="http://de.voidcc.com/question/p-ukkhtkwl-p.html" target="_blank" title="Kann eine Klasse von System.Web.UI.Page und System.Web.UI.UserControl erben?"> Kann eine Klasse von System.Web.UI.Page und System.Web.UI.UserControl erben? </a> </li> <li> 9. <a href="http://de.voidcc.com/question/p-msldlbuo-cg.html" target="_blank" title="Kann eine verschachtelte C++ - Klasse ihre umschließende Klasse erben?"> Kann eine verschachtelte C++ - Klasse ihre umschließende Klasse erben? </a> </li> <li> 10. <a href="http://de.voidcc.com/question/p-pnhyydqb-k.html" target="_blank" title="Kann eine Mitgliedsklasse von ihrem übergeordneten Element erben?"> Kann eine Mitgliedsklasse von ihrem übergeordneten Element erben? </a> </li> <li> 11. <a href="http://de.voidcc.com/question/p-uzxtcigj-b.html" target="_blank" title="Wie kann ich von ArrayList <MyClass> erben?"> Wie kann ich von ArrayList <MyClass> erben? </a> </li> <li> 12. <a href="http://de.voidcc.com/question/p-blmcyuyt-cq.html" target="_blank" title="Kann eine Ruby-Klassenmethode von einer anderen Klasse erben?"> Kann eine Ruby-Klassenmethode von einer anderen Klasse erben? </a> </li> <li> 13. <a href="http://de.voidcc.com/question/p-vijojkag-t.html" target="_blank" title="Kann eine C# -Klasse Attribute von ihrer Schnittstelle erben?"> Kann eine C# -Klasse Attribute von ihrer Schnittstelle erben? </a> </li> <li> 14. <a href="http://de.voidcc.com/question/p-oxctrsfx-dt.html" target="_blank" title="Kann ich von einer zur Laufzeit ausgewählten OCaml-Klasse erben?"> Kann ich von einer zur Laufzeit ausgewählten OCaml-Klasse erben? </a> </li> <li> 15. <a href="http://de.voidcc.com/question/p-rffghpqu-bv.html" target="_blank" title="Kann ich anderen Baugruppen verbieten, von einer Klasse zu erben?"> Kann ich anderen Baugruppen verbieten, von einer Klasse zu erben? </a> </li> <li> 16. <a href="http://de.voidcc.com/question/p-wmamknmv-bt.html" target="_blank" title="Warum kann ich LinkedListNode <T> nicht erben?"> Warum kann ich LinkedListNode <T> nicht erben? </a> </li> <li> 17. <a href="http://de.voidcc.com/question/p-xwrtmyqn-m.html" target="_blank" title="kann ich die Variablen eines übergeordneten Controllers erben?"> kann ich die Variablen eines übergeordneten Controllers erben? </a> </li> <li> 18. <a href="http://de.voidcc.com/question/p-cjnzrfrc-br.html" target="_blank" title="Wie kann ich einfach Methoden von einer vorhandenen Instanz erben?"> Wie kann ich einfach Methoden von einer vorhandenen Instanz erben? </a> </li> <li> 19. <a href="http://de.voidcc.com/question/p-bnfgnkzl-n.html" target="_blank" title="Kann ein virtualenv von einem anderen erben?"> Kann ein virtualenv von einem anderen erben? </a> </li> <li> 20. <a href="http://de.voidcc.com/question/p-uxkeyilv-es.html" target="_blank" title="kann nicht erben und überschreiben ArrayAdapter"> kann nicht erben und überschreiben ArrayAdapter </a> </li> <li> 21. <a href="http://de.voidcc.com/question/p-gkpygovt-dn.html" target="_blank" title="Wie kann ein Objekt einen Wert erben?"> Wie kann ein Objekt einen Wert erben? </a> </li> <li> 22. <a href="http://de.voidcc.com/question/p-fdmutdib-m.html" target="_blank" title="Wie kann ich eine benutzerdefinierte Klasse von mehreren Superklassen erben lassen?"> Wie kann ich eine benutzerdefinierte Klasse von mehreren Superklassen erben lassen? </a> </li> <li> 23. <a href="http://de.voidcc.com/question/p-unwmmagz-cg.html" target="_blank" title="Wie kann ich das Erben von Klassen erzwingen, um eine statische Methode in C# zu implementieren?"> Wie kann ich das Erben von Klassen erzwingen, um eine statische Methode in C# zu implementieren? </a> </li> <li> 24. <a href="http://de.voidcc.com/question/p-drbijqpu-eo.html" target="_blank" title="Wie kann ich eine feste positionierte div Erben Breite des Elternteils machen?"> Wie kann ich eine feste positionierte div Erben Breite des Elternteils machen? </a> </li> <li> 25. <a href="http://de.voidcc.com/question/p-mhckakpo-ca.html" target="_blank" title="Kann ich von WebClient erben, ohne dass mein Code eine "Design-Time-Komponente" ist?"> Kann ich von WebClient erben, ohne dass mein Code eine "Design-Time-Komponente" ist? </a> </li> <li> 26. <a href="http://de.voidcc.com/question/p-hizjwsim-ee.html" target="_blank" title="Wie erben ich die KDoc-Dokumentation?"> Wie erben ich die KDoc-Dokumentation? </a> </li> <li> 27. <a href="http://de.voidcc.com/question/p-dmiiswix-e.html" target="_blank" title="PHP5-Klassen: eine komponierte Klasse erben?"> PHP5-Klassen: eine komponierte Klasse erben? </a> </li> <li> 28. <a href="http://de.voidcc.com/question/p-prsmlflh-ck.html" target="_blank" title="Wie erteile ich Unit-Test erben Objekte?"> Wie erteile ich Unit-Test erben Objekte? </a> </li> <li> 29. <a href="http://de.voidcc.com/question/p-rmmoxywc-bk.html" target="_blank" title="Wie organisiere ich C# -Klassen, die voneinander erben, aber auch Eigenschaften besitzen, die von einander erben?"> Wie organisiere ich C# -Klassen, die voneinander erben, aber auch Eigenschaften besitzen, die von einander erben? </a> </li> <li> 30. <a href="http://de.voidcc.com/question/p-vrmrgmuv-bd.html" target="_blank" title="Welche sollte welche erben?"> Welche sollte welche erben? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422091"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Letzte Frage </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.voidcc.com/question/p-yteqcsnh-ng.html" target="_blank" title="React Router nicht ändern URL"> React Router nicht ändern URL </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-dzxbejxf-na.html" target="_blank" title="Kann nicht in() -Methode während der Verwendung von Glide"> Kann nicht in() -Methode während der Verwendung von Glide </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-csyfobxo-my.html" target="_blank" title="Extract ID von JSON String"> Extract ID von JSON String </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-oahctmti-na.html" target="_blank" title="Wie zeichnet man nur den Hintergrund einer Xamarin.Forms-Schaltfläche?"> Wie zeichnet man nur den Hintergrund einer Xamarin.Forms-Schaltfläche? </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-bvahsudp-nd.html" target="_blank" title="Dropbox API, Benutzer abrufen Verlauf"> Dropbox API, Benutzer abrufen Verlauf </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-zchowurw-ne.html" target="_blank" title="Power Shell-Skript funktioniert gut in Windows Power Shell ISE, aber es funktioniert nicht in Power Shell Version 5"> Power Shell-Skript funktioniert gut in Windows Power Shell ISE, aber es funktioniert nicht in Power Shell Version 5 </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-fnsnnsey-nb.html" target="_blank" title="Wie können Sie den Wert einer Variablen ändern?"> Wie können Sie den Wert einer Variablen ändern? </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-plwpwxkx-nd.html" target="_blank" title="Mongoose eindeutige und benutzerdefinierte Validierung"> Mongoose eindeutige und benutzerdefinierte Validierung </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-slvoqdat-my.html" target="_blank" title="Wie kann ich eine Sammlung durch kleinere Zeitinkremente filtern?"> Wie kann ich eine Sammlung durch kleinere Zeitinkremente filtern? </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-xmrvwlmn-ok.html" target="_blank" title="Wie man einen Code für 20 Textfelder aus insgesamt 22 Textfeldern statt 20 Mal gleich macht"> Wie man einen Code für 20 Textfelder aus insgesamt 22 Textfeldern statt 20 Mal gleich macht </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Verwandte Themen</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.voidcc.com/question/p-fgefrqpl-bh.html" target="_blank" title="Kann ich nur eine Methode in Erben überschreiben?"> Kann ich nur eine Methode in Erben überschreiben? </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-tabqqsnw-h.html" target="_blank" title="Kann eine Webservice-Klasse asp.net-Seitenklasse erben"> Kann eine Webservice-Klasse asp.net-Seitenklasse erben </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-ayokxgut-bv.html" target="_blank" title="Kann eine Seite mehrere Masterseiten? (ASP.NET) erben"> Kann eine Seite mehrere Masterseiten? (ASP.NET) erben </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-zxsaccde-bb.html" target="_blank" title="erben eine statische Klasse"> erben eine statische Klasse </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-gdnvjmzw-bd.html" target="_blank" title="kann eine ASPX-Seite mehr als eine aspx.cs-Klasse erben?"> kann eine ASPX-Seite mehr als eine aspx.cs-Klasse erben? </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-dbxgdxwu-n.html" target="_blank" title="Sollte eine Schnittstelle eine andere Schnittstelle erben"> Sollte eine Schnittstelle eine andere Schnittstelle erben </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-fpjszwgt-bv.html" target="_blank" title="Wie kann ich von QWidget und QThread erben?"> Wie kann ich von QWidget und QThread erben? </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-ukkhtkwl-p.html" target="_blank" title="Kann eine Klasse von System.Web.UI.Page und System.Web.UI.UserControl erben?"> Kann eine Klasse von System.Web.UI.Page und System.Web.UI.UserControl erben? </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-msldlbuo-cg.html" target="_blank" title="Kann eine verschachtelte C++ - Klasse ihre umschließende Klasse erben?"> Kann eine verschachtelte C++ - Klasse ihre umschließende Klasse erben? </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-pnhyydqb-k.html" target="_blank" title="Kann eine Mitgliedsklasse von ihrem übergeordneten Element erben?"> Kann eine Mitgliedsklasse von ihrem übergeordneten Element erben? </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://de.voidcc.com/contact">Sprechen Sie uns an</a></li> <li>© 2020 DE.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>