Хорошо, я пытаюсь сделать мои URL-адреса более дружественными и получить немного больше индексации сока от Google. По сути, у меня есть несколько URL, которые выглядят так:
/ статьи? Страница = 2 & фильтр = все
и я хочу, чтобы это выглядело так
/ статьи / все / 2
Мне нужно, чтобы часть / artiles /: filter /: page работала так же хорошо, как мои маршруты:
resources: :articles do
get '(:filter(/:page)', action: :index, on: :collection
end
У меня вопрос, как заставить параметры страницы работать без фильтра (или других необязательных параметров)?
/ статьи /? Страница = 2
должно выглядеть как
/ статьи / 2
Я думал об использовании ограничений, но не могу заставить его работать, что-то вроде этого
resources: :articles do
get ':page', action: :index, on: :collection, constraints: { page: /\d+/ }
get '(:filter(/:page)', action: :index, on: :collection
end
EDIT
Я не осознавал этого, но вышесказанное работает, а ссылка - не генерирует красивые URL. например / Articles / All / 1, он все еще выводит / статьи? фильтр = все. Это код ссылки, который я использую:
= link_to "Filter", articles_path(filter: 'all') #=> /articles?filter=all
и я хочу: / статьи / все и / статьи / все / 2 и / статьи / 2 и все работы.