Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2009, 11:40
rdavila
 
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.