2013-01-16 46 views
0

我在routes.rb中写这样的:如何在Ruby on Rails的URL中添加参数?

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

我想访问 “应用程序/ MyApp的& mytarget”,然后去apps_controller#秀,这是HAML:

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

但它返回:

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

我在这里错过了什么?

+0

为什么“&”的查询字符串''据我所知也许开始你?想要像这样获得'app /:name /:target' – Viren

回答

2

您不需要指定您希望在路由中接受的URL参数。只需创建PARAMS内到控制器#行动路线,如)

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

和您的应用程序#show动作访问内部的URL参数,从[:目标],可以有许多这样的URL参数,他们都将在rails为你生成的params哈希中。您不必在路线中明确提及它们。

所以只是传递参数到您的网址助手:

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

通一样,在路径或URL

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