如何使用url参数访问root_path(在主机应用程序中,从Rails引擎)?

时间:2019-02-22 02:08:48

标签: ruby-on-rails routes

设置

引擎的routes.rb

MyEngine::Engine.routes.draw do
  get '/:guid', :to => 'foo_bar#index'
end

通过mount MyEngine::Engine, :at => '/some_route'

安装在主机应用中

问题

主机应用程序中某个助手的某个位置:

generated_link = my_engine.root_path(some_guid_i_got)

结果

undefined method `root_path' for #<ActionDispatch::Routing::RoutesProxy:0x00007ff443d405a0>

我尝试添加include MyEngine::Engine.routes.url_helpers,但是这打破了许多其他与引擎无关的路线。 引擎除了可以使用此url-helper以外,还可以正常工作,但是我不想在其中硬编码URL。

/some_route/a-guid-here生成url的正确方法是什么?

预先感谢

1 个答案:

答案 0 :(得分:-1)

该错误让您知道出了什么问题。 undefined method root_path告诉您找不到定义的root_path,这是您的路由文件中必须具有的路径。