3

我正在尝试在我的 Rails 应用程序中实现门卫。我的应用程序由 2 个可安装的引擎组成。Api 和 CoreApi。

  constraints :subdomain => 'api' do
    mount Api::Engine => '/'
  end

  constraints :subdomain => 'core.api' do
    mount CoreApi::Engine => '/'
  end

我想在 CoreApi 引擎中使用 Doorkeeper 来使用 OAuth 保护这些端点。我已经在我的 gemspec 中为该引擎包含了 Doorkeeper gem。我还在初始化程序中设置了符号。

CoreApi::Doorkeeper = ::Doorkeeper

一切正常,除非我尝试访问门卫的应用程序索引路径。我跑rake routes了,CoreApi 引擎的路径列出了所有的门卫路径。问题是

undefined local variable or method `new_oauth_application_path'

它指的是doorkeeper-1.0.0/app/views/doorkeeper/applications/index.html.erb第11行的url助手

我不明白为什么这没有解决。我假设它是因为门卫是一个可安装在轨道上的引擎,我正试图将它安装在一个可安装在轨道上的引擎内。

4

1 回答 1

0

添加到第一行config/initializers/doorkeeper.rb

Doorkeeper::ApplicationController.send(:include, CoreApi::Engine.routes.url_helpers)
于 2014-07-21T18:11:26.920 回答