Rails 3 Custom Route, который принимает несколько идентификаторов в качестве параметра - PullRequest
5 голосов
/ 20 июня 2011

Как добавить маршрут в мое приложение Rails 3, которое позволяет мне иметь URL-адрес, который сопоставляется с действием в ресурсе RESTful, который принимает несколько параметров:

/modelname/compare/1234,2938,40395

И затем в моем контроллере я хочу получить доступ к этим идентификаторам:

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

Пока я пробовал матч '/modelname/compare/:modelname_ids', :to => 'modelname#compare', но я продолжаю получать No route matches "/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005". Есть предложения?

1 Ответ

8 голосов
/ 20 июня 2011

Вы можете установить маршрут, который соответствует чему угодно, а затем разделить параметр внутри вашего контроллера:

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

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