¿Cómo identificamos los parámetros en una URL dinámica?

Estamos creando un CMS de Rails donde un blog o listado de noticias puede aparecer en cualquier parte del árbol del sitio. Esto significa que cualquier página conoce su tipo en función de un campo de base de datos, por ejemplo: una página sabe que es de tipo de listas de noticias, por lo que una vez que se llama a esa URL para esa página, necesitamos que sea procesada por el controlador de listas de noticias. Las subpáginas de la página de listas de noticias son noticias, cada una con una fecha y categoría.

La URL de la lista de noticias podría ser

/dogs/snoopy-news/ 

y una noticia podría ser

/dogs/snoopy-news/snoopy-is-great/

La complejidad para nosotros es con las URL que tienen parámetros adicionales para incluir rangos de fechas de noticias o listados de categorías, por ejemplo:

Listado de todas las noticias de noviembre

/dogs/snoopy-news/2010/11/

O enumerando todas las historias que tienen comida como categoría:

/dogs/snoopy-news/category/food/

Dado que esa página de listas de noticias podría estar en cualquier nivel de la jerarquía del sitio, ¿cómo abordaríamos identificar que 2010 es un parámetro o que la categoría es un parámetro?

(Almacenaremos todas las URL en la base de datos de cada página para que podamos buscar primero para ver si existe una página para una URL)

EDITAR: Esta publicación ofrece una posible solución:CMS dinámico como rutas en ruby on rails que probaremos e informaremos de nuevo. Al guardar una página en el CMS, agregaríamos rutas a la tabla de enrutamiento en ese punto no solo para la página en sí, sino también para los posibles parámetros:

/dogs/snoopy-news/{year}/{month}/

Respuestas a la pregunta(2)

Su respuesta a la pregunta