¿Cómo crear una barra de menú estática (no refrescante) como Facebook?

Con un par de puntos de interrupción de JavaScript e inspección DOM, parece que
cada clic ejecuta una solicitud de carga Ajax que se carga en una sección específica de #globalContainer.

Para responder específicamente a su pregunta: Rails, como lenguaje de fondo, no ayudará mucho en sus esfuerzos a menos que esté creando un servicio web que devuelva JSON que consumió con JavaScript en el front-end.

Recomiendo emparejar jQuery (http://jquery.com/) y Underscore.js (http://underscorejs.org/) en el front-end para lograr esto de la manera más efectiva y fácil.

  • jQuery se encargará de enviar solicitudes y recibir respuestas de sus llamadas.
  • Si decide devolver objetos JSON para compilar plantillas, Underscore.js es actualmente la biblioteca de plantillas más rápida disponible en este momento (con las características que ofrece).

También querrá ver específicamente el método de plantilla () de Underscore: http://underscorejs.org/#template

– EDITAR

Debería ir más allá y decir que la ruta JSON no es, de ninguna manera, requerida.

Puede configurar controladores que devuelvan vistas, tal como lo haría en cualquier marco MVC, y recuperar respuestas de texto / html que luego carga en otro elemento en su página.

Aquí están los 2 métodos más comunes.
1) coloque un iFrame para cargar el contenido de la página y coloque alrededor de este iframe todo el contenido independiente (barras, columnas de anuncios, etc.)

2) [esto es usado por Facebook] usa Ajax para cualquier solicitud de página y reemplaza el contenido de un div con la respuesta de la solicitud de ajax cuando sea necesario. De esta forma, el nuevo contenido cargado también puede interactuar más fácilmente, a través de JS, con el contenido independiente de la página (barras / encabezados / columnas), etc.

PD. use un marco JS para facilitar las cosas. ¡Jquery también es bastante bueno para ajax!