我在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"
我在这里错过了什么?
答案 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"......)