如何动态调用rails中的路由助手?

gtr*_*32x 30 ruby routes ruby-on-rails

例如,我构建了一个名为"new_work_path"的字符串,现在我想将该帮助器称为方法.

我试过send("new_work_path", vars)并从许多对象调用相同的发送.但我不认为我找到了正确的对象来称呼这些助手.

要做object.send("new_work_path", vars),我应该寻找什么对象

我试图在网上寻找一段时间,但找不到任何东西.如果有人能在这一个上发光,那就太棒了!

谢谢!

Ahm*_*Ali 38

尝试 Rails.application.routes.url_helpers.send(...)


gtr*_*32x 8

我的坏,按照@tadman的建议,我试着send(:new_work_path, args)再次使用它,它的工作原理!以前一定输错了.

在发现发送立即工作之前,我找到了另一个有趣的解决方案:

new_polymorphic_path(Work, args)
Run Code Online (Sandbox Code Playgroud)

这似乎也提供了一些语法糖.