Я пытаюсь изменить свой параметр URL в моем приложении.В настоящее время я использую friendly_id, чтобы URL включал заголовок вместо идентификатора.Однако я хотел бы добавить идентификатор после заголовка в URL, если это возможно.
пример:
текущий: app.com/categories/aircraft/listings/listing-title/
обязательный: app.com/categories/aircraft/listings/listing-title / list-id
Вот мои вложенные маршруты прямо сейчас
resources :categories do
resources :listings, only: [:index, :show]
end
В соответствии с документацией я могу переопределить именованные помощники и изменить пути, но я могу только перезаписать часть списковURL, а не просто добавление: id в конец параметра, чтобы он оставался уникальным, если есть два списка с одинаковым заголовком.
https://guides.rubyonrails.org/routing.html#overriding-the-named-helpers
Я думаю, что friendly_id добавляет случайные уникальные символы, чтобы остановить повторяющиеся URL-адреса, уродливо, поэтому я думаю об этом по-другому.
Добавление приведенного ниже маршрута может отчасти заставить его.Но есть ли способ добавить маршрут в блок «делать ресурсы» только для страницы показа, не затрагивая ссылки кнопок уже на странице?
get 'categories/:catgeory_id/listings/:id/:aircraft_id', to: 'listings#show'
РЕДАКТИРОВАНИЕ:
Я воспользовался советом по использованию slug_candidates
def slug_candidates
[
:title,
[:title, self.id]
]
end
Я также попробовал его, используя просто: id.
Я получаю URL-адреса с заголовком / UUID вместо заголовка / перечисление_id, судя по всему.Любая идея, это связано с миграцией, имеющей уникальное поле в начальной настройке гема friendly_id?