提问人:Cleversou 提问时间:7/25/2022 更新时间:8/16/2022 访问量:528
Rails 中的范围和命名空间路由
Scope and Namespace routes in Rails
问:
我正在遵循一个关于 Dookeeper 和 Devise gems in Rails 的教程,在视频的一点中,作者创建了以下路线:
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
我不太明白命名空间和范围的意义何在......它们相辅相成,或者是分开的东西,为什么我必须使用?
多谢!
答:
1赞
Chiperific
8/16/2022
#1
简而言之(我的强调是后加的):
当您使用 时,它将为指定资源的 URL 路径添加前缀,并尝试在与命名空间相同的模块下找到控制器。
namespace
在没有任何选项且仅使用范围名称的情况下使用时,它只会更改资源路径。
scope
因此,当没有具有匹配名称的控制器时,它对于进行路由匹配很有用。scope
namespace
namespace :api do
namespace :v1 do
resources:books
end
end
为您提供“/api/v1/books”的基本路由,但需要Api::V1::BooksController
scope :api do
scope :v1 do
use doorkeeper do
skip_controllers:authorizations,:applications,:authorized_applications
end
end
end
提供以“api/v1”开头但不尝试与类匹配的门卫路由。Api::V1::Doorkeeper
评论
1赞
Cleversou
8/17/2022
非常感谢,Chiperific!我现在明白了!
上一个:如何修复错误生成的脚手架?
下一个:RoR 路由的命名空间设置
评论