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

我在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" 

我在这里错过了什么?

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

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

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

所以只需将参数传递给您的url助手:

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

像在路径或url中那样传递

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