2011-06-20 76 views
5

如何添加路由到我的Rails 3应用程序,它可以让我有一个映射到一个RESTful资源的作用,接受多个参数的URL:的Rails 3自定义路由需要多个ID作为参数

/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"。有什么建议么?

回答

8

您可以设置匹配任何东西,然后分割你的控制器内部参数的路线:

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

# controller: 
def compare_action 
    @modelname = Modelname.find(params[:path].split(',')) 
end 
+0

它不应该是'分裂(“”)'? – lulalala