У меня есть некоторые списки аренды, которые я хочу, чтобы они были доступны в качестве ресурса RESTful, но при этом индекс должен быть отфильтрован через параметр: area, который может быть районом или районом.Учитывая ресурс аренды, я хотел бы иметь
/rentals
, а также: фильтрацию параметров области на корневом уровне
/downtown
/westside
/some-neighborhood
etc.
Я думал, что смогу получить этоВнизу моего файла маршрутов поместите следующее:
resources :rentals
get ':area' => 'rentals#index', :area => /[a-zA-Z0-9\-]+/, :as => :area
Но когда я добавил Kaminari для разбивки на страницы, он автоматически сгенерировал бы ссылки на нумерацию страниц, чтобы выглядеть примерно так:
/rentals?area=downtown&page=2
когда я предпочел бы, чтобы это выглядело как
/downtown?page=2
Чтобы заставить Kaminari использовать именованную версию маршрута, параметр: area должен иметь приоритет, поэтому я изменил маршруты на:
get ':area' => 'rentals#index', :area => /(?!rentals)[a-zA-Z0-9\-]+/, :as => :area
resources :rentals
Но когда я пытаюсь распознать маршрут в консоли, я получаю:
ActionController::RoutingError: No route matches {:controller=>"rentals", :area=>"downtown"}
Я не уверен, как подойти к решению этой проблемы, поэтому любая помощь будет признательна.