2011-06-20 15 views
5

¿Cómo agrego una ruta a mis Rails 3 aplicación, que me permite tener una dirección URL que se asigna a una acción en un recurso REST que acepta múltiples parámetros:Rails 3 ruta personalizada que tiene varios ID como parámetro

/modelname/compare/1234,2938,40395 

Y luego en mi controlador, que quieren acceder a estos ID:

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

hasta ahora, he estado tratando partido '/modelname/compare/:modelname_ids', :to => 'modelname#compare', pero me siguen dando No route matches "/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005". ¿Alguna sugerencia?

Respuesta

8

Puede configurar una ruta que coincide con nada, entonces divide el parámetro dentro de su controlador:

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

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

no debe ser dividida '('')'? – lulalala

Cuestiones relacionadas