У меня есть структура Категории, настроенная с моим приложением, использующим гем Ancestry, и на каждой странице категорий отображается список связанного контента, с will_paginate, обрабатывающим разбиение на страницы контента, и friendly-id для идентификаторов-слагов. Хорошо работает.
Однако я хотел бы кэшировать страницы, и мне нужно было переписать URL / пагинацию, чтобы номер страницы следовал за URL, а не просто за строкой '? Page = 1', иначе кэширование не будет работать, поскольку оно просто кэширует Первая страница. Таким образом, я определил свой маршрут для страницы категорий таким образом ...
match '/categories/:id(/:page)' => 'categories#show'
... и URL генерируется как '/ category / news / 1', и нумерация страниц отлично работает. Пока все хорошо.
Но теперь мы переходим к вложенным / подкатегориям с более хитрым требованием, URL должен быть вложенным путем. Другими словами, с помощью подкачки мы хотим иметь «/ category / news / local / 1». Поэтому я решил, что путаница на маршруте - это то, что нужно делать, делая это ...
match '/categories/*subcategory/:id(/:page)' => 'categories#show'
Таким образом, «local» - это идентификатор подкатегории, и все, что следует за «/ category /» и перед «local», не должно иметь значения. (Но в URL это будет родительская категория, как я показал выше.)
Страница работает нормально, когда вы посещаете «/ Categories / news / local» и извлекаете контент для «local», но проблема заключается в разбивке на страницы, она генерирует URL-адрес, например «/ Categories / local / 1» ? подкатегория = новости. Что?
Как определить маршрут для подкатегорий, чтобы получить нумерацию страниц для создания правильных URL-адресов?