instance method namespace

Ruby on Rails 3.0.20

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

namespace(path, options = {})

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
end

All routes for the above resources will be accessible through /sekret/posts, rather than /admin/posts

:module

The namespace for the controllers.

namespace :admin, :module => "sekret" do
  resources :posts
end

The PostsController here should go in the Sekret namespace 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 scope method.

Parameters

path req
options opt = {}
Source
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 620
        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

Defined in actionpack/lib/action_dispatch/routing/mapper.rb line 620 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionDispatch::Routing::Mapper::Scoping

Type at least 2 characters to search.

↑↓ navigate · open · esc close