使用已安装引擎的根路径时,这inchails inRails application.routes.recognize_path是什么?

时间:2019-01-19 16:09:31

标签: ruby-on-rails ruby ruby-on-rails-5 rails-engines

我正在开发引擎,我需要以编程方式找到哪个控制器动作将用于主机应用程序或引擎的任何路径。但是,解析引擎的根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"}

0 个答案:

没有答案