2011-06-20 5 views
5

Comment ajouter une route à mes Rails 3 app qui me permet d'avoir une URL qui correspond à une action dans une ressource RESTful qui accepte plusieurs paramètres:Rails 3 Custom Route qui prend plusieurs ids comme paramètre

/modelname/compare/1234,2938,40395 

Et puis dans mon contrôleur, je veux accéder à ces ids:

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

jusqu'à présent, je l'ai essayé match de '/modelname/compare/:modelname_ids', :to => 'modelname#compare', mais je continue à me No route matches "/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005". Aucune suggestion?

Répondre

8

Vous pouvez configurer un itinéraire qui correspond à quelque chose, puis diviser le paramètre dans votre contrôleur:

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

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

ne devrait pas être 'ce split ('')'? – lulalala