如何在Ruby on Rails的URL中添加参数?

时间:2013-01-16 10:06:07

标签: ruby-on-rails ruby

我在routes.rb中写道:

get 'app/:name&:target' => 'apps#show', :as => :app_info

我想访问“app / myapp& mytarget”,然后转到apps_controller #show,这是haml:

link_to app_item[:name], app_info_url(app_item[:name], app_item[:target])

但它返回:

No route matches [GET] "/app/myapp&mytarget"

我在这里错过了什么?

2 个答案:

答案 0 :(得分:2)

您无需在路线中指定要接受的网址参数。只需创建到控制器#action的路径,例如

get 'app/:name' => 'apps#show', :as => :app_info

在你的应用程序内#show action访问params [:target]中的URL参数,可以有很多这样的URL参数,所有这些参数都在rails为你生成的params哈希中。您无需在路线中明确提及它们。

所以只需将参数传递给你的网址助手:

link_to app_item[:name], app_info_url(app_item[:name], target: app_item[:target])

答案 1 :(得分:0)

在路径或网址

中传递
app_info_url(app_item[:name], app_item[:target], :params1 => "value1", params2 => "value2"......)