2015-01-14 4 views
0

У меня есть двигатель Rails (для проверки подлинности, хотя я не думаю, что это будет иметь значение). Он поставляется, как и традиционный, с фиктивным приложением в каталоге /spec. Двигатель определяет пару маршрутов в приложении, а фиктивное приложение определяет несколько своих собственных.Pow не распознает созданные машиной маршруты

Когда я запускаю фиктивное приложение в WEBrick, используя rails s, он отлично работает. Однако, при попытке запустить его с помощью Pow (символической ссылки на my_engine/spec/dummy в ~/.pow), это, кажется, не признают маршруты, обеспечиваемые двигатель, и я получаю:

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 это значение было nil (тогда как в WEBrick он был настроен на «развитие», как предположил автор), и поэтому он пытался отобразить link_to('text', nil). Что-то вызвало ошибку выше.