2010-02-28 41 views
6

¿Hay alguna forma de que una plantilla herede otra plantilla? No estoy usando Rails.¿Puedo heredar una plantilla erb?

+0

¿Qué esperas que suceda cuando heredes de otra plantilla? ¿Cómo espera anular la plantilla, o parte de ella? – molf

+1

Al igual que otras plantillas do. Por ejemplo, las partes pueden ser genéricas para todas ellas, como el pie de página y el encabezado. – Geo

+1

explique en detalle lo que desea lograr – johannes

Respuesta

3

no, no se puede heredar una plantilla erb - no es una clase es simplemente un archivo

EDIT:..

de acuerdo con el comentario de @ Dan, me echó un vistazo sobre la herencia de plantillas de Django y se ve muy similar a Rails content_for. Sin embargo, no sé cómo usarlo fuera de Rails. Echa un vistazo a here en los puntos 3.2 y 3.3, y here.

+4

No creo que hayas respondido la pregunta. Si has tenido alguna experiencia con las plantillas de Django, entenderías lo que está tratando de preguntar. –

5

Lo que estás buscando es partials y layouts. Puede definir un diseño como un contenedor para su página que tiene elementos de diseño global (incluye CSS y javascript, encabezados y pies de página, etc. Dentro de esta vista, puede yield a otra plantilla, y esa plantilla puede mostrar partials.

+1

Eso es cierto en los rieles, pero ¿es cierto en erb cuando no está en los rieles? –

+0

No. Rails maneja esos métodos por usted. Sin embargo, puede consultar el código fuente de Rails para ActionController, ya que contiene los métodos apropiados, y puede incluir los módulos necesarios o implementarlos usted mismo. –

+0

Sí, los conozco, pero desafortunadamente no estoy usando Rails. Soy una persona de Sinatra :) – Geo

5

También me gusta mucho la herencia de plantilla django, pero no está disponible al menos con sinatra.

El sinatra book explica cómo se puede utilizar un layout.erb para definir un diseño de página estándar:

Sólo tiene que definir un archivo views/layout.erb con algo como:

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

Y luego llame a su plantilla erb con erb :index por ejemplo. Sinatra renderizará ambas plantillas e incluirá el contenido de su plantilla de índice dentro del resultado del renderizado layout.erb.

+0

¿Hay alguna manera de anular más de una parte de la plantilla? Diga, para especificar el contenido del elemento '' – <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">La mejor manera de hacer esto es probablemente usar https://github.com/sinatra/sinatra-contrib/blob/master/lib/sinatra/content_for.rb Luego puede simplemente usar 'content_for: some_key' y luego usar' yield_content: somekey' en tu diseño – <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>Ahora están el marco <a href="https://github.com/botanicus/rango" rel="nofollow">Rango</a>, el primer marco de Ruby con herencia de plantilla y una gema de estructura independiente <a href="https://github.com/botanicus/template-inheritance" rel="nofollow">template inheritance</a>, extraída de él.</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">Fuente</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="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1038284119" 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">Cuestiones relacionadas</div> <ul class="relative_list"> <li> 1. <a href="http://es.uwenku.com/question/p-hljrqxqt-bo.html" target="_blank" title="Incrustar una plantilla ejs dentro de una plantilla erb"> Incrustar una plantilla ejs dentro de una plantilla erb </a> </li> <li> 2. <a href="http://es.uwenku.com/question/p-uhyhvdap-bw.html" target="_blank" title="¿Cómo se comenta en una plantilla erb?"> ¿Cómo se comenta en una plantilla erb? </a> </li> <li> 3. <a href="http://es.uwenku.com/question/p-vxpxtyzn-x.html" target="_blank" title="Renderizar plantilla ERB en plantilla RABL"> Renderizar plantilla ERB en plantilla RABL </a> </li> <li> 4. <a href="http://es.uwenku.com/question/p-ndddzyaf-u.html" target="_blank" title="Cómo heredar una plantilla de control"> Cómo heredar una plantilla de control </a> </li> <li> 5. <a href="http://es.uwenku.com/question/p-gymkvsvk-bg.html" target="_blank" title="¿Es posible requerir una clase en una plantilla erb?"> ¿Es posible requerir una clase en una plantilla erb? </a> </li> <li> 6. <a href="http://es.uwenku.com/question/p-vicazcci-bc.html" target="_blank" title="Renderizar una plantilla ERB con valores de un hash"> Renderizar una plantilla ERB con valores de un hash </a> </li> <li> 7. <a href="http://es.uwenku.com/question/p-skdhknye-bt.html" target="_blank" title="Plantilla ERB que elimina la línea posterior"> Plantilla ERB que elimina la línea posterior </a> </li> <li> 8. <a href="http://es.uwenku.com/question/p-mntlpgtu-bq.html" target="_blank" title="Manejo de JSON en plantilla JS/ERB en Rails 3"> Manejo de JSON en plantilla JS/ERB en Rails 3 </a> </li> <li> 9. <a href="http://es.uwenku.com/question/p-zscikhof-x.html" target="_blank" title="¿Hay una manera de enumerar las variables disponibles en una plantilla de Rubí ERB?"> ¿Hay una manera de enumerar las variables disponibles en una plantilla de Rubí ERB? </a> </li> <li> 10. <a href="http://es.uwenku.com/question/p-wolfdjrg-p.html" target="_blank" title="¿Cómo puedo verificar la sintaxis (no procesar) un archivo de plantilla ERB de Rails 3?"> ¿Cómo puedo verificar la sintaxis (no procesar) un archivo de plantilla ERB de Rails 3? </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://es.uwenku.com/question/p-vokkngik-bw.html" target="_blank" title="¿Cómo puedo encontrar la ruta de un archivo de plantilla usando ERB?"> ¿Cómo puedo encontrar la ruta de un archivo de plantilla usando ERB? </a> </li> <li> 12. <a href="http://es.uwenku.com/question/p-mlkuzyjl-g.html" target="_blank" title="¿Cómo puedo comentar ERB en Rails?"> ¿Cómo puedo comentar ERB en Rails? </a> </li> <li> 13. <a href="http://es.uwenku.com/question/p-fgawtuwi-bp.html" target="_blank" title="¿Cómo puede heredar una clase de una plantilla basada en sí misma?"> ¿Cómo puede heredar una clase de una plantilla basada en sí misma? </a> </li> <li> 14. <a href="http://es.uwenku.com/question/p-cpozgcps-bm.html" target="_blank" title="¿cómo puedo heredar de QWidget y QThread?"> ¿cómo puedo heredar de QWidget y QThread? </a> </li> <li> 15. <a href="http://es.uwenku.com/question/p-bjbsckjc-w.html" target="_blank" title="Erb con Sinatra en rubí"> Erb con Sinatra en rubí </a> </li> <li> 16. <a href="http://es.uwenku.com/question/p-nddznarn-n.html" target="_blank" title="¿Cómo escapar de la etiqueta de ERB en ERB"> ¿Cómo escapar de la etiqueta de ERB en ERB </a> </li> <li> 17. <a href="http://es.uwenku.com/question/p-wghilyjp-ba.html" target="_blank" title="C++: "error: nombre de clase esperado antes de '{' token" al heredar una clase de plantilla"> C++: "error: nombre de clase esperado antes de '{' token" al heredar una clase de plantilla </a> </li> <li> 18. <a href="http://es.uwenku.com/question/p-bwtwcnim-a.html" target="_blank" title="C++ clase de plantilla heredar otra clase de plantilla con un tipo de entrada de plantilla-especificado"> C++ clase de plantilla heredar otra clase de plantilla con un tipo de entrada de plantilla-especificado </a> </li> <li> 19. <a href="http://es.uwenku.com/question/p-scccqjjl-bs.html" target="_blank" title="Etiquetas rubb "erb" incrustadas"> Etiquetas rubb "erb" incrustadas </a> </li> <li> 20. <a href="http://es.uwenku.com/question/p-fvreabeq-k.html" target="_blank" title="¿Cómo puedo eliminar una plantilla de sitio?"> ¿Cómo puedo eliminar una plantilla de sitio? </a> </li> <li> 21. <a href="http://es.uwenku.com/question/p-gkwbgury-bg.html" target="_blank" title="Alternativas a ERB"> Alternativas a ERB </a> </li> <li> 22. <a href="http://es.uwenku.com/question/p-kkfwkbmh-bo.html" target="_blank" title="Llamar a Sinatra erb de otra clase"> Llamar a Sinatra erb de otra clase </a> </li> <li> 23. <a href="http://es.uwenku.com/question/p-cpxiwiae-b.html" target="_blank" title="¿Cómo puedo heredar el resumen de C# en otra clase? (Como heredar Javadoc)"> ¿Cómo puedo heredar el resumen de C# en otra clase? (Como heredar Javadoc) </a> </li> <li> 24. <a href="http://es.uwenku.com/question/p-hxelonfj-u.html" target="_blank" title="Backbone.js con plantillas Eco: ¿cómo incluir una plantilla dentro de una plantilla?"> Backbone.js con plantillas Eco: ¿cómo incluir una plantilla dentro de una plantilla? </a> </li> <li> 25. <a href="http://es.uwenku.com/question/p-xzjxvofj-n.html" target="_blank" title="manejo .Erb con Nils rieles"> manejo .Erb con Nils rieles </a> </li> <li> 26. <a href="http://es.uwenku.com/question/p-rdshmzpa-bm.html" target="_blank" title="Scala: ¿cómo heredar una "ranura estática"?"> Scala: ¿cómo heredar una "ranura estática"? </a> </li> <li> 27. <a href="http://es.uwenku.com/question/p-aoosswsl-t.html" target="_blank" title="Ruby ternary operator in erb?"> Ruby ternary operator in erb? </a> </li> <li> 28. <a href="http://es.uwenku.com/question/p-fevwgmar-w.html" target="_blank" title="Selector heredar"> Selector heredar </a> </li> <li> 29. <a href="http://es.uwenku.com/question/p-nxrhwlje-bs.html" target="_blank" title="bloques en ERB pura/Erubis"> bloques en ERB pura/Erubis </a> </li> <li> 30. <a href="http://es.uwenku.com/question/p-gwqjabdb-bc.html" target="_blank" title="Plantillas de Ruby: ¿cómo pasar variables a ERB en línea?"> Plantillas de Ruby: ¿cómo pasar variables a ERB en línea? </a> </li> </ul> </div> <div> <script async src="https://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="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048471"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/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="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" 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"> Última pregunta </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://es.uwenku.com/question/p-hqwasfss-bg.html" target="_blank" title="proyectos de ejemplo para la integración jBPM con Spring e Hibernate"> proyectos de ejemplo para la integración jBPM con Spring e Hibernate </a> </li> <li class="side_article_list_item"> 2. <a href="http://es.uwenku.com/question/p-spcowsou-x.html" target="_blank" title="MATLAB heat map"> MATLAB heat map </a> </li> <li class="side_article_list_item"> 3. <a href="http://es.uwenku.com/question/p-sbtnqqus-h.html" target="_blank" title="MembershipCreateUserException - El nombre de usuario proporcionado no es válido"> MembershipCreateUserException - El nombre de usuario proporcionado no es válido </a> </li> <li class="side_article_list_item"> 4. <a href="http://es.uwenku.com/question/p-ftlssubl-g.html" target="_blank" title="¿Cómo adaptar CQRS a los proyectos?"> ¿Cómo adaptar CQRS a los proyectos? </a> </li> <li class="side_article_list_item"> 5. <a href="http://es.uwenku.com/question/p-odleqeis-bv.html" target="_blank" title="¿Puedo leer una tarjeta HID iClass con un dispositivo Android?"> ¿Puedo leer una tarjeta HID iClass con un dispositivo Android? </a> </li> <li class="side_article_list_item"> 6. <a href="http://es.uwenku.com/question/p-vxijqfhk-bx.html" target="_blank" title="No se puede convertir implícitamente el tipo 'int' a 'bool'"> No se puede convertir implícitamente el tipo 'int' a 'bool' </a> </li> <li class="side_article_list_item"> 7. <a href="http://es.uwenku.com/question/p-udpofxbe-bk.html" target="_blank" title="C++ y CRTP patrón de aplicación y el dilema"> C++ y CRTP patrón de aplicación y el dilema </a> </li> <li class="side_article_list_item"> 8. <a href="http://es.uwenku.com/question/p-ugounfyo-bg.html" target="_blank" title="Excepción extraña: No se puede convertir String en booleano cuando se usa getBoolean"> Excepción extraña: No se puede convertir String en booleano cuando se usa getBoolean </a> </li> <li class="side_article_list_item"> 9. <a href="http://es.uwenku.com/question/p-zfjvfcwe-t.html" target="_blank" title="Autenticación de usuario AD"> Autenticación de usuario AD </a> </li> <li class="side_article_list_item"> 10. <a href="http://es.uwenku.com/question/p-rmvzfkli-o.html" target="_blank" title="Cómo convertir existir Blob Blob a PageBlob"> Cómo convertir existir Blob Blob a PageBlob </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> Cuestiones relacionadas</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://es.uwenku.com/question/p-hljrqxqt-bo.html" target="_blank" title="Incrustar una plantilla ejs dentro de una plantilla erb"> Incrustar una plantilla ejs dentro de una plantilla erb </a> </li> <li class="side_article_list_item"> 2. <a href="http://es.uwenku.com/question/p-uhyhvdap-bw.html" target="_blank" title="¿Cómo se comenta en una plantilla erb?"> ¿Cómo se comenta en una plantilla erb? </a> </li> <li class="side_article_list_item"> 3. <a href="http://es.uwenku.com/question/p-vxpxtyzn-x.html" target="_blank" title="Renderizar plantilla ERB en plantilla RABL"> Renderizar plantilla ERB en plantilla RABL </a> </li> <li class="side_article_list_item"> 4. <a href="http://es.uwenku.com/question/p-ndddzyaf-u.html" target="_blank" title="Cómo heredar una plantilla de control"> Cómo heredar una plantilla de control </a> </li> <li class="side_article_list_item"> 5. <a href="http://es.uwenku.com/question/p-gymkvsvk-bg.html" target="_blank" title="¿Es posible requerir una clase en una plantilla erb?"> ¿Es posible requerir una clase en una plantilla erb? </a> </li> <li class="side_article_list_item"> 6. <a href="http://es.uwenku.com/question/p-vicazcci-bc.html" target="_blank" title="Renderizar una plantilla ERB con valores de un hash"> Renderizar una plantilla ERB con valores de un hash </a> </li> <li class="side_article_list_item"> 7. <a href="http://es.uwenku.com/question/p-skdhknye-bt.html" target="_blank" title="Plantilla ERB que elimina la línea posterior"> Plantilla ERB que elimina la línea posterior </a> </li> <li class="side_article_list_item"> 8. <a href="http://es.uwenku.com/question/p-mntlpgtu-bq.html" target="_blank" title="Manejo de JSON en plantilla JS/ERB en Rails 3"> Manejo de JSON en plantilla JS/ERB en Rails 3 </a> </li> <li class="side_article_list_item"> 9. <a href="http://es.uwenku.com/question/p-zscikhof-x.html" target="_blank" title="¿Hay una manera de enumerar las variables disponibles en una plantilla de Rubí ERB?"> ¿Hay una manera de enumerar las variables disponibles en una plantilla de Rubí ERB? </a> </li> <li class="side_article_list_item"> 10. <a href="http://es.uwenku.com/question/p-wolfdjrg-p.html" target="_blank" title="¿Cómo puedo verificar la sintaxis (no procesar) un archivo de plantilla ERB de Rails 3?"> ¿Cómo puedo verificar la sintaxis (no procesar) un archivo de plantilla ERB de Rails 3? </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://es.uwenku.com/contact">Contactanos</a></li> <li>© 2020 ES.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>