从Rails.application.routes.url_helpers

时间:2015-05-07 23:02:19

标签: ruby-on-rails

我想知道如何使用Rails.application.routes.url_helpers来访问引擎路由。

我有一个工厂对象,它创建一个包含动态生成的URL的字符串。目前,我可以使用Rails.application.routes.url_helpers.(INSERT PATH NAME)生成网址。

但是,它只能访问主应用程序中的路线。我无法访问主应用程序上安装的引擎路径。

我尝试过的事情

  1. 我尝试使用Rails.application.routes.engine_name,其中engine_name是在主应用上安装引擎的名称。

  2. 我尝试使用MyEngine::Engine.routes.url_helpers访问引擎中的路由。它有效,但我想使用Rails.application.routes.url_helpers,因为有很多像这样的工厂对象,它们都是从将url_helper转换为Rails.application.routes的超类继承。

  3. 有什么建议吗?如果需要澄清,请告诉我。

2 个答案:

答案 0 :(得分:1)

您必须使用引擎路由代理方法。 在您的示例中,使用以下语法调用url帮助程序:

my_engine.articles_path

要重命名代理方法帮助程序,只需编辑rails应用程序中的路径配置文件:

{{1}}

所以你现在可以调用前面的例子:

{{1}}

答案 1 :(得分:1)

假设您的引擎名称空间为EngineName,则应为:

EngineName::Engine.routes.url_helpers.some_engine_path