【问题标题】:Interpolation in Rails Route HelperRails Route Helper 中的插值
【发布时间】:2013-05-31 02:29:07
【问题描述】:

有什么方法可以插入到对路由助手的调用中?

我有一个部分,其中我将一个资源(用户、画廊等)作为名为@9​​87654322@ 的本地传递。我需要一个链接来编辑资源,但我需要每个资源的链接都不同:

对于用户,链接需要使用帮助器edit_user_path,对于图库,它需要使用edit_gallery_path 等等。

所以我需要一种方法将资源名称插入到帮助程序中(伪代码): edit_{resource.name}_path

【问题讨论】:

  • 如果您使用的是继承资源,则可以使用 url helper edit_resource_path(resource) (github.com/josevalim/inherited_resources#url-helpers)
  • @MrYoshiji 看起来宝石的主人已经弃用它了。
  • Arf,这个 gem 带来了太多的黑魔法和令人困惑的东西,现在他们在不更新文档的情况下弃用了方法!

标签: ruby-on-rails url resources routes helper


【解决方案1】:

您可以将edit_user_path 替换为send("edit_user_path")。已在控制台中验证。

现在你可以在里面插入字符串了。

【讨论】:

  • 做得很好。只是稍微扩展您的答案:send("edit_#{resource.class.to_s.underscore()}_path", resource).
  • 我需要在视图中执行此操作,所以我收到了undefined method error。你知道什么班级电话发送?在控制台我做app.send..
  • @cortex,这应该能够像 OP 一样在视图中工作。也没有类,因为命名路径属于 Rails 应用程序实例。如果您仍然有问题,您可以发布一个包含详细信息的新问题。
猜你喜欢
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 2010-11-04
  • 1970-01-01
相关资源
最近更新 更多