0

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

我在这里错过了什么?

4

2 回答 2

2

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

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

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

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

link_to app_item[:name], app_info_url(app_item[:name], target: app_item[:target])
于 2013-01-16T10:27:58.027 回答
0

在路径或 url 中这样传递

app_info_url(app_item[:name], app_item[:target], :params1 => "value1", params2 => "value2"......)
于 2013-01-16T10:42:08.137 回答