La pregunta (perdon si la contestaron antes, no la vi) mas bien sería:
Natalia, qué querés lograr?

map.resources se usa cuando el usuario tiene acceso a varios recursos
de ese tipo, y le sirve listarlos, ver uno en particular, agregar
nuevos, etc.

Ejemplos serían posts en un blog, productos en un carrito de compras,
usuarios en una red social.

map.resource se usa cuando el usuario tiene acceso a un único recurso
de ese tipo (o sea que no puede ver una lista).

Ejemplos serían un dashboard, o la sección de "account" de muchos
sitios (yo no quiero ver/editar los detalles de la account de otro
usuario).

--

En tu caso particular, me da la impresión que lo que querés lograr es
que los usuarios tengan acceso a la lista de productos (para poder
agregarlos al carrito y eso). Así que casi que seguro que necesitás un
"map.resources :products" y no un "map.resource :product" (no hay un
único producto que pueda estar viendo cada usuario).

Igual, no se exactamente qué tiene que hacer la acción
ProductsController#ship, entonces no estoy seguro de cuál sería la
mejor forma de modelarlo.

Más allá de los ejemplos que probaste y cómo funcionaron/no
funcionaron o si podés o no acceder a las rutas de una forma u otra,
contanos *qué querés lograr* y entonces podemos ver cuál es la mejor
forma de lograrlo, y por qué.

-foca


2009/9/17 Jürgen Feßlmeier <[email protected]>:
> Depende que queres hacer, pero parece que queres implementar (1) "ship a
> product" o (2) "list shipped products"?
>
> # (1) put /products/1/sip
> # ship_product_path(@product)
> map.resources :products, :member => {:ship => :put}
> # (2) get /products/ship
> # ship_products_path
> map.resources :products, :collection => {:ship => :get}
>
>
> Saludos,
> Juergen
> On Sep 17, 2009, at 11:45 AM, Natalia Gutierrez wrote:
>
> Gracias a todos por contestar. Intente hacer:
> map.resource :products, :collection =>{:ship => :get}
> pero no anduvo. Probe colocandolo antes o despues de map.resources
> :products, pero siempre me tomaba la primera declaracion, es decir, a veces
> funcionaba /products y a veces /products/ship.
> Ahora probe con:
>
> map.connect 'products/ship', :controller => 'products', :action => 'ship'
>
> y andan las dos cosas. No se si sera lo correcto. Gracias
>
>
>
> Natalia Gutiérrez
> Ingeniería y Desarrollo
> ICOP Santa Fe S.R.L.
> Primera Junta 3057
> S3000CDM - Santa Fe
> (0342) 4526057 int. 140
> [email protected]
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas
> de virus 4433 (20090917) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a