El uso de la interpolación dentro de Node.js incluye EJS

Mi aplicación Express está utilizando EJS, y mi directorio de vistas tiene este aspecto:

./views
  ./contents
    home.ejs
  ./includes
    header.ejs
    footer.ejs
  layout.ejs

Estoy intentando cargar home.ejs en mi vista layout.ejs condicionalmente en función de una variable local llamadacontents en mis rutas / index.js. Ese archivo se ve así:

/*
 * GET home page.
 */

exports.index = function(req, res){
  res.render('index', { title: 'Home', contents: 'home.ejs' });
};

Idealmente podría simplemente escribir (en layout.ejs):

<% include '/contents' + contents %>

donde el "contenido" final es la variable local que contiene la ruta relativa al texto del cuerpo para cargar.

Pero, por desgracia, parece que EJS siempre interpreta el texto después deinclude Directiva literalmente, y no hay posibilidad de que ocurra ninguna magia de interpolación.

También he intentado en vano:

<% function yieldContent(contents){ %>
  <% var contentPath = 'contents/' + contents; %>
  <% include contentPath %>
<% }; %>
<% loadContent(); %>

¿Alguien tiene una solución creativa para incluir condicionalmente una vista basada en una variable que se pasa en las rutas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta