Pow 无法识别引擎创建的路由

Pow doesn't recognize engine-created routes

我有一个 Rails 引擎(用于身份验证,但我认为这无关紧要)。与传统一样,它在 /spec 目录中带有一个虚拟应用程序。 引擎在应用程序中定义了一些路由,虚拟应用程序定义了一些自己的路由。

当我 运行 WEBrick 中的虚拟应用程序使用 rails s 时,它工作正常。但是,当尝试使用 Pow 运行 时(符号链接到 ~/.pow 中的 my_engine/spec/dummy),它似乎无法识别引擎提供的路由,我得到:

ActionController::UrlGenerationError at /login
No route matches {:action=>"new", :controller=>"my_engine/sessions"}

这有什么问题,为什么它只发生在 Pow 中?

以下是路线文件,以备不时之需:

my_engine/config/routes.rb:

Rails.application.routes.draw do

  get 'login', :controller => 'my_engine/sessions', :action => :new
  post 'login', :controller => 'my_engine/sessions', :action => :create
  get 'logout', :controller => 'my_engine/sessions', :action => :destroy

end

my_engine/spec/dummy/config/routes.rb:

Rails.application.routes.draw do

  mount MyEngine::Engine => "/auth"

  root 'home#index'

  controller :home do
    get :index
    get :private, :as => 'private'
  end

end

编辑:我确定当引擎在普通应用程序中使用时这也不起作用,所以它不仅仅是虚拟应用程序。

所以,原来是完全不相关的。我链接到的引擎服务页面包含一个 link_to 助手,其中第二个参数(路径)依赖于 ENV['RAILS_ENV']。在 Pow 中,这个值为 nil(而在 WEBrick 中,它被设置为 'development',正如作者所期望的那样),因此它试图渲染 link_to('text', nil)。以某种方式产生了上述错误。