【问题标题】:Ruby on Rails : get route using controller, action & paramRuby on Rails:使用控制器、动作和参数获取路由
【发布时间】:2013-12-13 19:10:28
【问题描述】:

我对 RoR 很陌生,我正在寻找一种方法来获取给定控制器、动作和参数的路由。

类似于 url_for() 但没有域和协议的东西。

假设我有:

params = {"controller"=>"controller", "action"=>"edit", "project_id"=>"1"}

我需要得到:

route = "/controller/edit/1"

如果我不需要手动构建路由并且不需要拆分 url_for() 的结果,那将是最好的。

RoR 本身是否支持这样的功能?这可能是一个简单的问题,但我找不到答案。

【问题讨论】:

  • 与使用命名 URL 相比,使用它是否有特定原因?
  • my_action_my_controller_path(project_id: 1) 是生成路径的助手(如果需要,请使用 my_action_my_controller_url
  • @MrYoshiji 是的!谢谢;这正是我想要的。我找到了有关此助手的更多信息:guides.rubyonrails.org/routing.html#path-and-url-helpers
  • @MrYoshiji 将其设为答案,以便所有人都能看到。

标签: ruby-on-rails ruby url controller action


【解决方案1】:

您应该可以使用以下内容

link_to "Link Content", :controller => "my_controller", :action => "my_action", :project_id => 1

这将生成一个<a>,其中包含指向您的控制器/操作的链接。

【讨论】:

    【解决方案2】:

    这是生成您想要的路径的助手:

    edit_controller_path(project_id: 1)
    

    您可以使用此Helper生成链接的完整路径(包括主机):

    edit_controller_url(project_id: 1)
    

    编辑: 更多信息可在 http://guides.rubyonrails.org/routing.html#path-and-url-helpers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      相关资源
      最近更新 更多