我有一个带有这些路径的Rails引擎:
Project::Engine.routes.draw do
post '/sessions' => 'project/sessions#create'
get '/login' => "project/sessions#new", as: :login
get '/logout' => "project/sessions#destroy", as: :logout
root to: 'project/home#dashboard'
end
在我的主Rails应用程序中,我安装了这样的引擎路径:
CMS::Application.routes.draw do
mount Project::Engine => '/project', as: 'project'
end
我认为这意味着我现在会有/project/login
路由和/project/logout
/project/sessions
路由,但它们都在根目录下(/sessions
,{ {1}},/login
)。
如果这不能做我想做的事情,那么当我在这里指定路径时,究竟会发生什么?我使用的是Rails 4.2.1。
答案 0 :(得分:0)
我相信在测试之后问题是你在引擎内绘制路线时使用'project / [...]'。 您将引擎作为项目安装在主应用程序中。在引擎内部引用时,项目超出范围。
更改为以下内容应该可以正常工作。
Project::Engine.routes.draw do
post '/sessions' => 'sessions#create'
get '/login' => "sessions#new", as: :login
get '/logout' => "sessions#destroy", as: :logout
root to: 'home#dashboard'
end
然后安装发动机:
CMS::Application.routes.draw do
mount Project::Engine => '/project', as: 'project'
end
提供路径:
见:
http://guides.rubyonrails.org/engines.html#mounting-the-engine http://guides.rubyonrails.org/engines.html#routes