5

如何将路由添加到我的 Rails 3 应用程序,它允许我拥有一个映射到 RESTful 资源中的操作的 URL,该资源接受多个参数:

/modelname/compare/1234,2938,40395

然后在我的控制器中,我想访问这些 id:

@modelname = Modelname.find(params[:modelname_ids])

到目前为止,我一直在尝试 match '/modelname/compare/:modelname_ids', :to => 'modelname#compare',但我不断得到No route matches "/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005"。有什么建议么?

4

1 回答 1

8

你可以设置一个匹配任何东西的路由,然后在你的控制器中拆分参数:

resources :modelname do
  match 'compare/*path' => 'controller#compare_action'
end

# controller:
def compare_action
  @modelname = Modelname.find(params[:path].split(','))
end
于 2011-06-20T14:56:58.430 回答