module ActionDispatch::Routing::Mapper::Scoping
def namespace(path, options = {})
[:shallow_path]
Routing helpers such as +admin_posts_path+ will now be +sekret_posts_path+.
end
resources :posts
namespace :admin, :as => "sekret" do
Changes the name used in routing helpers for this namespace.
[:as]
end
# code go here
class Sekret::PostsController < ApplicationController
The +PostsController+ here should go in the +Sekret+ namespace and so it should be defined like this:
end
resources :posts
namespace :admin, :module => "sekret" do
The namespace for the controllers.
[:module]
All routes for the above +resources+ will be accessible through +/sekret/posts+, rather than +/admin/posts+
end
resources :posts
namespace :admin, :path => "sekret" do
The path prefix for the routes.
[:path]
The +:path+, +:as+, +:module+, +:shallow_path+ and +:shallow_prefix+ options all default to the name of the namespace.
=== Supported options
admin_post DELETE /admin/posts/:id(.:format) {:action=>"destroy", :controller=>"admin/posts"}
admin_post PUT /admin/posts/:id(.:format) {:action=>"update", :controller=>"admin/posts"}
admin_post GET /admin/posts/:id(.:format) {:action=>"show", :controller=>"admin/posts"}
edit_admin_post GET /admin/posts/:id/edit(.:format) {:action=>"edit", :controller=>"admin/posts"}
new_admin_post GET /admin/posts/new(.:format) {:action=>"new", :controller=>"admin/posts"}
admin_posts POST /admin/posts(.:format) {:action=>"create", :controller=>"admin/posts"}
admin_posts GET /admin/posts(.:format) {:action=>"index", :controller=>"admin/posts"}
This generates the following routes:
end
resources :posts
namespace :admin do
Scopes routes to a specific namespace. For example:
def namespace(path, options = {}) path = path.to_s options = { :path => path, :as => path, :module => path, :shallow_path => path, :shallow_prefix => path }.merge!(options) scope(options) { yield } end