我正在开发引擎,我需要以编程方式找到哪个控制器动作将用于主机应用程序或引擎的任何路径。但是,解析引擎的根PATH似乎有些麻烦。
假人的路线文件为:
Rails.application.routes.draw do
mount Authz::Engine => '/authz', as: :authz
#...
end
引擎的路线文件为:
Authz::Engine.routes.draw do
root 'home#index'
resources :foos
#...
end
在主应用程序的某个地方,我正在执行以下操作,我不明白这里的陷阱是什么...
Rails.application.routes.recognize_path authz.root_path, method: :get
# => No route matches "/authz"
奇怪的是,如果执行以下操作,我会得到正确的答案。
Rails.application.routes.recognize_path authz.root_url, method: :get
# => {:controller=>"authz/home", :action=>"index"}