Ruby on Rails:使用controller,action和param获取路由

Ale*_*ult 9 ruby url action controller ruby-on-rails

我对RoR很新,我正在寻找一种方法来获取给定控制器,动作和参数的路径.

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

让我们说:

params = {"controller"=>"controller", "action"=>"edit", "project_id"=>"1"}
Run Code Online (Sandbox Code Playgroud)

我需要得到 :

route = "/controller/edit/1"
Run Code Online (Sandbox Code Playgroud)

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

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

Dan*_*ahn 5

您应该能够使用以下内容

link_to "Link Content", :controller => "my_controller", :action => "my_action", :project_id => 1
Run Code Online (Sandbox Code Playgroud)

这将产生一个<a>带有指向您的控制器/操作的链接。


MrY*_*iji 4

这是将生成您想要的路径的帮助器:

edit_controller_path(project_id: 1)
Run Code Online (Sandbox Code Playgroud)

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

edit_controller_url(project_id: 1)
Run Code Online (Sandbox Code Playgroud)

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