Rails 3自定义路由,将多个ID作为参数

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

/modelname/compare/1234,2938,40395 

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

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

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

您可以设置匹配任何内容的路由,然后在控制器中拆分参数:

 resources :modelname do match 'compare/*path' => 'controller#compare_action' end # controller: def compare_action @modelname = Modelname.find(params[:path].split(',')) end