Foros del Web » Programando para Internet » Ruby »

Problema con map.resources y sigular de controlador

Estas en el tema de Problema con map.resources y sigular de controlador en el foro de Ruby en Foros del Web. hola a todos estoy haciendo unos modificaciones y quiero usar rutas generadas 8creo que asi se dice) tengo lo siguiente en mi route.rb [CODE] ActionController::Routing::Routes.draw ...
  #1 (permalink)  
Antiguo 13/03/2009, 18:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema con map.resources y sigular de controlador

hola a todos estoy haciendo unos modificaciones y quiero usar rutas generadas 8creo que asi se dice) tengo lo siguiente en mi route.rb


[CODE]

ActionController::Routing::Routes.draw do |map|
map.resources :permisos, :collection => { :nuevo => :get, :editar => :get } do |permiso|
permiso.resources
end
map.resources :roles
map.resources :niveles
Código:
esto me da las siguientes rutas
             nuevo_permisos GET    /permisos/nuevo                  {:controller=>"permisos", :action=>"nuevo"}
   formatted_nuevo_permisos GET    /permisos/nuevo.:format          {:controller=>"permisos", :action=>"nuevo"}
            editar_permisos GET    /permisos/editar                 {:controller=>"permisos", :action=>"editar"}
  formatted_editar_permisos GET    /permisos/editar.:format         {:controller=>"permisos", :action=>"editar"}
                   permisos GET    /permisos                        {:controller=>"permisos", :action=>"index"}
         formatted_permisos GET    /permisos.:format                {:controller=>"permisos", :action=>"index"}
pero el problema es que quiero usae en sigular el nombre del controller como marca la nomenclatura de rails

undefined local variable or method `nuevo_permiso_path' for #<ActionView::Base:0x2334c9c>

pero no me la genera la ruta tienen ustedes idea que pueda ser o que ocupo agregar par que me genere la ruta como

Código:
nuevo_permiso GET    /permisos/new                    {:controller=>"permisos", :action=>"new"}
               editar_permiso GET    /permisos/:id/edit               {:controller=>"permisos", :action=>"edit"}
Gracias
  #2 (permalink)  
Antiguo 14/03/2009, 11:40
 
Fecha de Ingreso: abril-2008
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con map.resources y sigular de controlador

Hola, el problema esta en que estas usando :collection cuando deberias usar :member, :collection se usa cuando quieres trabajar con un grupo de recursos y :member cuando quieres trabajar con uno solo, en este caso tu quieres crear y editar un recurso, por lo tanto deberias usar :member.

Como estas tratando de modificar las acciones 'new' y 'edit' que son las que te genera Rails por defecto al declarar un nuevo recurso entonces no necesitas usar :member sino pasar el parametro :path_names en la declaracion del recurso:

ActionController::Routing::Routes.draw do |map|
map.resources :permisos, :path_names => { :new => 'nuevo', :edit => 'editar' }
map.resources :roles
map.resources :niveles
end

Y si necesitas hacer ese cambio para todos tus recursos, sera mejor que los especifiques en el archivo config/environment.rb:

config.action_controller.resources_path_names = { :new => 'nuevo', :edit => 'editar' }

Para una mejor comprensión del sistema de rutas, te recomiendo leer esto:
guides.rails.info/routing.html

Espero haberte ayudado.
Saludos.
  #3 (permalink)  
Antiguo 17/03/2009, 17:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con map.resources y sigular de controlador

Muchas gracias :D lo leere
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.