module ActionDispatch::Routing::Mapper::Scoping

def namespace(path, options = {})

See the +scope+ method.
[: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