【问题标题】:uninitialized constant Api::Doorkeeper未初始化的常量 Api::Doorkeeper
【发布时间】:2014-12-23 12:21:28
【问题描述】:

我的 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 并引用正确的控制器路径

【问题讨论】:

    标签: ruby-on-rails-4 rails-engines doorkeeper


    【解决方案1】:

    我的同事建议了这个解决方案found here,它对我有用:)

    MyEngine::Engine.routes.draw do
      old_scope = @scope[:module]
      @scope[:module] = nil
      use_doorkeeper
      @scope[:module] = old_scope
    end 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 2017-12-28
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多