Method: ActionDispatch::Routing::Mapper::Scoping#namespace
- Defined in:
- lib/action_dispatch/routing/mapper.rb
#namespace(path, options = {}) ⇒ Object
Scopes routes to a specific namespace. For example:
namespace :admin do
resources :posts
end
This generates the following routes:
admin_posts GET /admin/posts(.:format) {:action=>"index", :controller=>"admin/posts"}
admin_posts POST /admin/posts(.:format) {:action=>"create", :controller=>"admin/posts"}
new_admin_post GET /admin/posts/new(.:format) {:action=>"new", :controller=>"admin/posts"}
edit_admin_post GET /admin/posts/:id/edit(.:format) {:action=>"edit", :controller=>"admin/posts"}
admin_post GET /admin/posts/:id(.:format) {:action=>"show", :controller=>"admin/posts"}
admin_post PUT /admin/posts/:id(.:format) {:action=>"update", :controller=>"admin/posts"}
admin_post DELETE /admin/posts/:id(.:format) {:action=>"destroy", :controller=>"admin/posts"}
Supported options
The :path, :as, :module, :shallow_path and :shallow_prefix options all default to the name of the namespace.
- :path
-
The path prefix for the routes.
namespace :admin, :path => "sekret" do resources :posts endAll routes for the above
resourceswill be accessible through/sekret/posts, rather than/admin/posts - :module
-
The namespace for the controllers.
namespace :admin, :module => "sekret" do resources :posts endThe
PostsControllerhere should go in theSekretnamespace and so it should be defined like this:class Sekret::PostsController < ApplicationController # code go here end - :as
-
Changes the name used in routing helpers for this namespace.
namespace :admin, :as => "sekret" do resources :posts end
Routing helpers such as admin_posts_path will now be sekret_posts_path.
- :shallow_path
-
See the
scopemethod.
620 621 622 623 624 625 |
# File 'lib/action_dispatch/routing/mapper.rb', line 620 def namespace(path, = {}) path = path.to_s = { :path => path, :as => path, :module => path, :shallow_path => path, :shallow_prefix => path }.merge!() scope() { yield } end |