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!
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.