ejemplos siempre me ayudan, por lo que aquí es un ejemplo:
namespace :blog do
resources :contexts
end
nos dará las siguientes rutas:
blog_contexts GET /blog/contexts(.:format) {:action=>"index", :controller=>"blog/contexts"}
POST /blog/contexts(.:format) {:action=>"create", :controller=>"blog/contexts"}
new_blog_context GET /blog/contexts/new(.:format) {:action=>"new", :controller=>"blog/contexts"}
edit_blog_context GET /blog/contexts/:id/edit(.:format) {:action=>"edit", :controller=>"blog/contexts"}
blog_context GET /blog/contexts/:id(.:format) {:action=>"show", :controller=>"blog/contexts"}
PUT /blog/contexts/:id(.:format) {:action=>"update", :controller=>"blog/contexts"}
DELETE /blog/contexts/:id(.:format) {:action=>"destroy", :controller=>"blog/contexts"}
Usando alcance ...
scope :module => 'blog' do
resources :contexts
end
daré nosotros:
contexts GET /contexts(.:format) {:action=>"index", :controller=>"blog/contexts"}
POST /contexts(.:format) {:action=>"create", :controller=>"blog/contexts"}
new_context GET /contexts/new(.:format) {:action=>"new", :controller=>"blog/contexts"}
edit_context GET /contexts/:id/edit(.:format) {:action=>"edit", :controller=>"blog/contexts"}
context GET /contexts/:id(.:format) {:action=>"show", :controller=>"blog/contexts"}
PUT /contexts/:id(.:format) {:action=>"update", :controller=>"blog/contexts"}
DELETE /contexts/:id(.:format) {:action=>"destroy", :controller=>"blog/contexts"}
Aquí es una buena lectura sobre el tema: http://edgeguides.rubyonrails.org/routing.html#controller-namespaces-and-routing
por rutas u significa los nombres de la ayuda ¿no? no entiendo la funcionalidad del alcance ¿Qué hace (: module => "admin") si no cambia nada? –
Cambia las rutas reales utilizadas por las rutas de ruta a "/ admin/whatever", al igual que el espacio de nombres. Lo único diferente es el prefijo agregado a los métodos de ayuda. – alternative
Para comprender mejor la diferencia: considere usar ámbitos para la localización a través de URL y espacios de nombres para la anidación, por ejemplo, la url: http: //domain.com/nl/admin/panel. El nl es un alcance y el administrador es un espacio de nombres. – Valentin