ruby-on-rails - 如何在 Rails 中动态调用路由助手?

标签 ruby-on-rails ruby routes

例如,我构造了一个名为“new_work_path”的字符串,现在我想将该助手作为方法调用。

我试过 send("new_work_path", vars) 并从许多对象调用相同的发送。但我认为我没有找到合适的对象来调用这些助手。

要执行 object.send("new_work_path", vars),我应该寻找什么object

我已经尝试在网上查找了一段时间,但找不到任何内容。如果任何人都可以照亮这个,那就太好了!

谢谢!

最佳答案

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

编辑:

作为拉里·格布哈特 mentioned url_helpers 模块不再被缓存。

另一种解决方法是:

cached_helpers = Class.new do
  include Rails.application.routes.url_helpers
  include Rails.application.routes.mounted_helpers
end.new

cached_helpers.send(...)

关于ruby-on-rails - 如何在 Rails 中动态调用路由助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596168/

相关文章:

ruby-on-rails - 如何在 Rails View 中循环并打印多维数组?

ruby-on-rails - Ruby 用变量解析 DateTime

javascript - NodeJs Express app.get 处理查询和参数

scala - Play 路由器 : How to add a language-sensitive URL redirect rule?

ruby-on-rails - unicode 字符串的长度

ruby-on-rails - 无法使用 Mavericks 在我的 Mac 上安装 PG gem

Ruby - lambda 与 Proc.new

ruby-on-rails - 我们可以在 rails 3.0 中使用 mailchimp 发送用户通知电子邮件吗

ruby-on-rails - Rails 中的 link_to 方法使用什么 Ruby 结构?

ruby-on-rails - Mongoid 中的 find_or_create_by 线程安全吗?