Ruby on rails 4 Pow不';无法识别引擎创建的路由
我有一个Rails引擎(用于身份验证,尽管我认为这无关紧要)。它与传统一样,在Ruby on rails 4 Pow不';无法识别引擎创建的路由,ruby-on-rails-4,rails-engines,rack-pow,Ruby On Rails 4,Rails Engines,Rack Pow,我有一个Rails引擎(用于身份验证,尽管我认为这无关紧要)。它与传统一样,在/spec目录中有一个虚拟应用程序。 引擎在应用程序中定义了几个路由,而虚拟应用程序定义了自己的几个路由 当我在WEBrick中使用rails s运行虚拟应用程序时,它工作正常。但是,当尝试使用Pow(在~/.Pow中符号链接到my_engine/spec/dummy)运行它时,它似乎无法识别引擎提供的路由,我得到: ActionController::UrlGenerationError at /login No r
/spec
目录中有一个虚拟应用程序。
引擎在应用程序中定义了几个路由,而虚拟应用程序定义了自己的几个路由
当我在WEBrick中使用rails s
运行虚拟应用程序时,它工作正常。但是,当尝试使用Pow(在~/.Pow
中符号链接到my_engine/spec/dummy
)运行它时,它似乎无法识别引擎提供的路由,我得到:
ActionController::UrlGenerationError at /login
No route matches {:action=>"new", :controller=>"my_engine/sessions"}
这有什么问题,为什么它只发生在战俘身上
以下是重要的路由文件:
我的引擎/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
Rails.application.routes.draw do
mount MyEngine::Engine => "/auth"
root 'home#index'
controller :home do
get :index
get :private, :as => 'private'
end
end
我的引擎/spec/dummy/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
Rails.application.routes.draw do
mount MyEngine::Engine => "/auth"
root 'home#index'
controller :home do
get :index
get :private, :as => 'private'
end
end
编辑:我已经确定,当引擎也用于普通应用程序时,这不起作用,因此它不仅仅是虚拟应用程序。因此,结果证明完全无关。我链接到的引擎服务页面包含一个
link\u to
帮助程序,其中第二个参数(路径)依赖于ENV['RAILS\u ENV']
。在Pow中,该值为零(而在WEBrick中,它被设置为“开发”,正如作者预期的那样),因此它试图呈现链接到('text',nil)
。这不知何故产生了上述错误