2015-01-14 26 views
0

我有一個Rails引擎(用於身份驗證,但我認爲這不重要)。它與傳統的一樣,在/spec目錄中有一個虛擬應用程序。 引擎在應用程序中定義了幾條路線,而虛擬應用程序定義了它自己的一些路線。Pow無法識別引擎創建的路線

當我在WEBrick中使用rails s運行虛擬應用程序時,它工作正常。但是,當嘗試使用戰俘運行(在~/.pow符號鏈接到my_engine/spec/dummy),它似乎並沒有認識到由發動機提供的路線,我也得到:

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

有什麼不對的,爲什麼呢它只發生在Pow?

這裏是路線文件,如果它的事項:

my_engine /配置/ 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 /規格/空/配置/ 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 

編輯:我確定這不起作用,當引擎在正常的應用程序中使用a很好,所以它不只是虛擬應用程序。

回答

0

所以,原來是完全無關的。我鏈接的引擎投放頁面包含一個link_to幫手,其中第二個參數(路徑)取決於ENV['RAILS_ENV']。在Pow中,這個值是零(而在WEBrick中,它被設置爲「開發」,正如作者推測的那樣),所以它試圖呈現link_to('text', nil)。不知何故產生了上述錯誤。