Routing y RESTful

Hola a todos,
Normalmente utilizo los forums en inglé para resolver los problemas del
día a día.
Pero al ver que esta lista ha comenzado su andadura hoy en
ruby-forum.com, he tomado la decisión de utilizarla siempre en primer
lugar, e intentar que sea mi marco de trabajo habitual para estos
menesteres.
Con ello creo que ganaremos todos los hispanoparlantes.
Va pues mi primera preguanta en este foro.
Tras leer el articoulo de Micke clark
http://glu.ttono.us/articles/2006/08/30/guide-things-you-shouldnt-be-doing-in-rails
que recomienda, entre otras cosas, no utilizar los modulos para agrupar
controloadores en namespaces, y utilizar para este fin la propia
funcionalidad de routing de Rails, he cambiado la arquitectura de una de
mis aplicaciones.
Hasta el momento ningún problema que no haya podido resolves (aunque he
tenido que hacer algunas consultas en el foro de inglés).
La duda se me plantea ahora, mi siguiente paso será la conversión de la
aplicación hacia una API RESTful, utilizando Edge Rails, y me pregunto,
si podré utilizar de alguna manera el routinng en este contesto para la
agrupación de ciertos controladores dentro de la misma URL.
¿Alguien puede hacerme alguna observación o darme algún consejo al
respecto?

Un saludo a todos.
Juan M. Cervera

Hola Juan,

según tengo entendido (no soy un experto en cómo implementa Rails lo
de Rest), han introducido una novedad en las rutas para que puedas
aprovechar las convenciones del Rest y escribir algo como:

map.resource :post

o incluso

map.resources *%w(posts comment person)

que ya te mapea métodos y todo.

Te recomiendo este artículo [1] (y si no te funciona ves directamente
a la home [2], que ahí se puede leer.

Un saludo.

[1] http://scottraymond.net/2006/7/20/refactoring-to-rest
[2] http://scottraymond.net/

Hola Fernando.

Gracias por las referencias.

El próximo libro de Dave T., “Agile Web D.e with Rails v2”
dedica unas páginas muy interesantes a este tema en el capitulo “Action
Controller: Routing and URLs”.
Aqui explica, con la claridad que le caracteriza, como se generan estas
rutas para cada uno de los rescursos.
Pero mi pregunta, es de como agrupar varias de estas rutas de una
determinada forma. Algo parecido a la agrupación de controladores en un
namespace utilizando modulos.
Rutas como /supervisor/:controller/:action/:id para determinados
recursos que solo puede adminstrarse desde el area de supervisor.

Aunque no se, quiza sea un planteamiento que vaya en contra de la
filosofia de una API REST y por eso no haya forma facil de realizarla.

En fin, no se, seguire´re probando.

Si alguien necesita links haciainformación sobre estos temas, aqui tiene
las mios.

http://del.icio.us/jmcervera/rest

Un saludo
Juanma

On 9/29/06, Juanma C. [email protected] wrote:

determinada forma. Algo parecido a la agrupación de controladores en un
namespace utilizando modulos.
Rutas como /supervisor/:controller/:action/:id para determinados
recursos que solo puede adminstrarse desde el area de supervisor.

Quizá algo así te funcione:

map.connect “/supervisor/#{*%w(posts comment person)}”

No lo puedo probar ahora mismo que no tengo Rails instalado en este
ordenador, así que la sintaxis puede estar mal, pero estoy seguro que
las rutas son tan flexibles que te permiten hacer cosas como las que
te digo, o cosas como estas:

map.connect “pagina/*nicetitles”, :action => ‘show’, :controller =>
‘pages’

que sí que estamos utilizando nosotros (y por tanto, sé que funciona)
y que te permite crear una URLs del tipo: /pagina/subpagina1/ o
/pagina/subpagina1/subpagina2/ y así todas las que quieras.

Un saludo.

hola,

Como antes te han dicho, en algunos blogs hay buena información sobre
cómo hacer lo que dices, en concreto como dice en:
http://www.ryandaigle.com/articles/2006/08/01/whats-new-in-edge-rails-simply-restful-support-and-how-to-use-it
puedes usar prefijos para algunos recursos:

map.resources :users, :path_prefix => “/groups/:group_id”

que podrías dejar en:

map.resources :users, :path_prefix => “/admin”

(ojo no lo he probado)

Pero me da la impresión de que sería recomendable que no diferenciaras
los controladores de admin (estoy suponiendo que pretendes hacer eso)
de los normales, y que añadieras filtros para el control de acceso.
Pero depende del caso, claro.

Yo también tengo algunas dudas sobre las nuevas rutas restful que ya
preguntaré…

Un saludo.

Muchas gracias Siu,
Creo que esto contesta mi pregunta.

Había leido el articulo, hace un tiempo, pero se me pasaron algunos
cosas.
Un saludo

Juanma C.

Siu wrote:

hola,

Como antes te han dicho, en algunos blogs hay buena informaci�n sobre
c�mo hacer lo que dices, en concreto como dice en:
http://www.ryandaigle.com/articles/2006/08/01/whats-new-in-edge-rails-simply-restful-support-and-how-to-use-it
puedes usar prefijos para algunos recursos:

map.resources :users, :path_prefix => “/groups/:group_id”

que podr�as dejar en:

map.resources :users, :path_prefix => “/admin”

(ojo no lo he probado)

Pero me da la impresi�n de que ser�a recomendable que no diferenciaras
los controladores de admin (estoy suponiendo que pretendes hacer eso)
de los normales, y que a�adieras filtros para el control de acceso.
Pero depende del caso, claro.

Yo tambi�n tengo algunas dudas sobre las nuevas rutas restful que ya
preguntar�…

Un saludo.