Cómo llamar una acción de un controla dor sin parámetros

Saludos Lista, llevo un par de semanas aprendiendo RoR y he tenido
muchos problemas con el cambio de versión ya que la mayoría de la
documentación que encuentro es para la versión 1.* y no funcionan en la
2.0. Así que siempre tengo que pasar mucho tiempo buscando cómo debe
hacerse algo en la nueva
versión.
En este momento tengo este problema, entiendo que en la versión anterior
se podía llamar a una acción de un controlador con la url

servidor/controlador/acción
pero en rails 2.0 esto no funciona, ya que esa misma url trata de llamar
la acción show del controlador con el id=acción, para llamar la
acción es necesario especificarle un id adicional
así:
servidor/controlador/acción/1

para llamar la acción con el id=1, sin embargo acciones como el new si
funcionan sin parámetros.

PREGUNTA: Cómo puedo crear una acción sin parámetros que pueda llamar con

servidor/controlador/acción
?

Gracias por su atención y si tienen alguna referencia que recomendarme
que simplifique este proceso de aprendizaje les estaré muy agradecido


John Alexis Guerra Gómez
DUTO - Ingeniería con Función Social

Hola,

servidor/controlador/acción

pero en rails 2.0 esto no funciona,
hablando con propiedad, en Rails 2 funciona exactamente igual que antes
ya que esa misma url trata de llamar la acción show del controlador con el id=acción, para llamar la acción
es necesario especificarle un id adicional así:

esto no es porque sea Rails 2, sino porque al usar map.resources en el
fichero de configuración de las rutas, le estás definiendo rutas que
explícitamente dicen que todo lo que empiece por ese nombre de
controller y luego tenga un único fragmento de ruta más, va a mapear a
la ruta de show (siempre que venga por get)

Si tu controller no está en una ruta mapeada con map.resources, verás
que el comportamiento es el de siempre.

PREGUNTA: Cómo puedo crear una acción sin parámetros que pueda llamar con
servidor/controlador/acción

usa al definir el recurso la claúsula :collection tal que así

map.resources :nombre, :collection=>{:accion_que_quieras_tener=>:get}

Eso está diciendo que si para tu controller le viene una llamada vía get
a accion_que_quieras_tener, va a llamar a esa acción y no a show.

La teoría detrás de todo eso, en algún libro o tutorial de REST :wink:

saludos,

javier ramírez