如何在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"......)