scope(*args) public

Used to scope a set of routes to particular constraints.

Take the following route definition as an example:

scope :path => ":account_id", :as => "account" do
  resources :projects

This generates helpers such as account_projects_path, just like resources does. The difference here being that the routes generated are like /rails/projects/2, rather than /accounts/rails/projects/2.

Supported options


If you want to route /posts (without the prefix /admin) to Admin::PostsController, you could use

scope :module => "admin" do
  resources :posts

If you want to prefix the route, you could use

scope :path => "/admin" do
  resources :posts

This will prefix all of the posts resource’s requests with ‘/admin’


Prefixes the routing helpers in this scope with the specified label.

scope :as => "sekret" do
  resources :posts

Helpers such as posts_path will now be sekret_posts_path


Prefixes nested shallow routes with the specified path.

scope :shallow_path => “sekret” do

resources :posts do
  resources :comments, :shallow => true

The comments resource here will have the following routes generated for it:

post_comments    GET    /sekret/posts/:post_id/comments(.:format)
post_comments    POST   /sekret/posts/:post_id/comments(.:format)
new_post_comment GET    /sekret/posts/:post_id/comments/new(.:format)
edit_comment     GET    /sekret/comments/:id/edit(.:format)
comment          GET    /sekret/comments/:id(.:format)
comment          PUT    /sekret/comments/:id(.:format)
comment          DELETE /sekret/comments/:id(.:format)
Show source
Register or log in to add new notes.