1

我的 Rails 应用程序中有 API 引擎,并且我已将引擎安装在主应用程序路线下

Rails.application.routes.draw do
  mount Api::Engine => "/api"
end

我想像这样在我的路线中使用 use_doorkeeper 功能添加门卫路线

Api::Engine.routes.draw do
  use_doorkeeper :scope => "api/oauth"
end

这不起作用,因为它试图在 api/doorkeeper/controller_name 而不是 doorkeeper/controller_name 下查找控制器

作为一种解决方法,我在主应用程序 routes.rb 中添加了门卫路由,其范围如下

Rails.application.routes.draw do
  mount Api::Engine => "/api"
  use_doorkeeper :scope => "api/oauth"
end

但我想知道是否有解决方案,所以我仍然可以将路由添加到 api/config/routes.rb 并引用正确的控制器路径

4

1 回答 1

1

我的同事建议在这里找到这个解决方案,它对我有用:)

MyEngine::Engine.routes.draw do
  old_scope = @scope[:module]
  @scope[:module] = nil
  use_doorkeeper
  @scope[:module] = old_scope
end 
于 2015-01-21T09:50:53.123 回答