Method: ActionDispatch::Routing::Mapper::Scoping#namespace
- Defined in:
- lib/action_dispatch/routing/mapper.rb
#namespace(path, options = {}, &block) ⇒ 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) admin/posts#index
admin_posts POST /admin/posts(.:format) admin/posts#create
new_admin_post GET /admin/posts/new(.:format) admin/posts#new
edit_admin_post GET /admin/posts/:id/edit(.:format) admin/posts#edit
admin_post GET /admin/posts/:id(.:format) admin/posts#show
admin_post PATCH/PUT /admin/posts/:id(.:format) admin/posts#update
admin_post DELETE /admin/posts/:id(.:format) admin/posts#destroy
### Options
The :path, :as, :module, :shallow_path, and :shallow_prefix options all default to the name of the namespace.
For options, see ‘Base#match`. For :shallow_path option, see `Resources#resources`.
# accessible through /sekret/posts rather than /admin/posts
namespace :admin, path: "sekret" do
resources :posts
end
# maps to +Sekret::PostsController+ rather than +Admin::PostsController+
namespace :admin, module: "sekret" do
resources :posts
end
# generates +sekret_posts_path+ rather than +admin_posts_path+
namespace :admin, as: "sekret" do
resources :posts
end
961 962 963 964 965 966 967 968 969 970 971 972 973 974 |
# File 'lib/action_dispatch/routing/mapper.rb', line 961 def namespace(path, = {}, &block) path = path.to_s defaults = { module: path, as: .fetch(:as, path), shallow_path: .fetch(:path, path), shallow_prefix: .fetch(:as, path) } path_scope(.delete(:path) { path }) do scope(defaults.merge!(), &block) end end |