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

これは、doorkeeper/controller_name ではなく api/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 に答える