В настоящее время у меня есть некоторые проблемы с настройкой правильных маршрутов для моего приложения.
Короче говоря, я хотел бы, чтобы URL-адреса были такими:
Объяснение:
Show actual page for the selected poll
аннотация:
localhost:3000/polls/:category_slug/:poll_id
пример:
localhost:3000/polls/technology/1337
rout.rb
get 'polls/:category_slug/:poll_id' => 'polls#show', :as => :poll
Кроме того, пользователь должен иметь возможность фильтровать опросы по некоторым критериям, например показывать Top-Опросы, Новые-Опросы и т. Д.
объяснение:
Show a list of polls, which are matching the selected criteria
аннотация:
localhost:3000/polls/:category_slug/:filter_mode
пример:
localhost:3000/polls/technology/top
rout.rb
get 'polls/:category_slug/:filter_mode' => 'filter#by_mode', :as => :polls_filter
И вот проблема
ActiveRecord::RecordNotFound : Couldn't find Poll with ID=top_all
Второй маршрут ('polls/:category_slug/:filter_mode'
) перезаписывает первый маршрут, поэтому Rails распознает :filter_mode
как :poll_id
.
Итак, мой вопрос: как я могу изменить это поведение, чтобы оба маршрута действительно работали
без перезаписи друг друга? (первый маршрут будет работать корректно, когда я опущу второй)
Я надеюсь, что кто-то понимает мою проблему, ценю любую помощь