简体   繁体   中英

Scope and Namespace routes in Rails

I'm following a tutorial on Dookeeper and Devise gems in Rails, in one point of the video, the author creates the following routes:

namespace :api do
 namespace :v1 do
  resources:books
 end
end

scope :api do
 scope :v1 do
  use doorkeeper do
    skip_controllers:authorizations,:applications,:authorized_applications
   end
  end
end

I don't quite understand what's the point of the namespace and scope in point... They complement each other or are separated things and why do I have to use?

Thanks a lot!

Here's a helpful overview .

In short (my emphasis added):

When you use namespace , it will prefix the URL path for the specified resources, and try to locate the controller under a module named in the same manner as the namespace .

When using scope without any options and only a scope name, it will just change the resources path .

So scope is useful for making a route match namespace when there aren't controllers with matching names.

namespace :api do
 namespace :v1 do
  resources:books
 end
end

Gives you a base route of "/api/v1/books" but requires a Api::V1::BooksController

scope :api do
 scope :v1 do
  use doorkeeper do
    skip_controllers:authorizations,:applications,:authorized_applications
   end
  end
end

Gives doorkeeper routes that start with "api/v1" but without trying to match to an Api::V1::Doorkeeper class.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM