Template no Ruby on Ralis

Olá pessoal, existe a funcionalidade no rails de criar um sistema de template do tipo seguinte:

Tenho a pagina template.jsp em java, ela e definida assim, utilizando o sistema de template do Mentawai;

<%@taglib uri="/template" prefix="template"%>
<html>
  <head>
    <title>Mentawai with Templates</title>
  </head>
  <body>
    <table>
      <tr><td colspan="2"><template:block id="head"/></td></tr>
      <tr>
        <td width="25%"><template:block id="menu"/></td>
        <td><template:block id="body"/></td>
      </tr>
    </table>
  </body>
</html>

Ai no TemplateManager eu configuro desta forma:

public class TemplateManager extends org.mentawai.template.TemplateManager {

    public void configurePages() {
    
        Page base = new Page("template.jsp");
        base.setBlock("head", new Page("head.jsp"));
        base.setBlock("menu", new Page("menu.jsp"));
       
        Page page;
       
        page = new Page("/listNews", base); //Extends!
        page.setBlock("body", new Page("listNews.jsp"));
        add(page);
      
    }
}

Desta forma mapeio no web.xml, que qualquer url .page, ira para o template manager, ele automaticamente "injeta " a pagina que eu passei e substitui o bloco body, mas mantém os outros dois.

Existe algum framework, que faça isso no ruby, ou até mesmo o rails tem esta funcionalidade?

Obrigado

o Rails já tem essa funcionalidade embutida, se vc olhar na pasta app/views existe uma pasta layouts, la vc pode por os templates. o padrão é o template application.html.erb que será o padrão para todo o sistema.

basta usar por exemplo dentro das tags <body> o comando

<%= yield %>

Assim todas as paginas serão expostas dentro do campo yield

exato, e você ainda pode utilizar <%= render “algumaPartial” %> que vai buscar o “_algumaPartial.ext.rb” do diretório do controller atual, para pegar sempre o mesmo, no caso do layout, precisa informar o caminho completo da partial :smiley:

Ou seja, bem mais fácil que a versão Java, como sempre :smiley:

E nem vai precisar mapear nada, editar XML e escrever tranqueiras rs

[quote=urubatan]exato, e você ainda pode utilizar <%= render “algumaPartial” %> que vai buscar o “_algumaPartial.ext.rb” do diretório do controller atual, para pegar sempre o mesmo, no caso do layout, precisa informar o caminho completo da partial :smiley:

Ou seja, bem mais fácil que a versão Java, como sempre :D[/quote]

Realmente, é bem mais fácil consegui fazer do jeito que eu queria. Vida longa ao rails e ao ruby!

Valeu

<momento jabá>
Tem exemplo disto no meu livro também :smiley:
</momento jabá>