2012-11-11 3 views
3

Я использую жемчужину friendly_id в своем приложении rails, чтобы создать хороший чистый URL-адрес. Он работает хорошо, но страница также достижима с помощью идентификатора записи.Rails friendly_id страницы по-прежнему достижимы по идентификатору записи

Пример:

У меня есть запись с 'именем', как слизняк. Эта запись имеет 1 для ID.

Так страница достижима из 2-х URL:

domain.com/name

и

domain.com/1

Я только хочу, чтобы использовать domain.com/name , поэтому я не хочу, чтобы страница была достижима с domain.com/1.

Кто-нибудь знает, как это сделать?

ответ

7

С самого автора (Google является вашим другом, это топ результат при поиске friendly_id disable find id): https://github.com/norman/friendly_id/issues/146

Какая версия FriendlyId?

С 4.x просто используйте find_by_slug, а не находите.

С помощью 3.x вы можете использовать find_by_cached_slug или проверить результат поиска friendly_id_status и поднять ошибку, если запись была найдена с использованием чего-то другого, кроме дружественного идентификатора.

В любом случае, вам нужно заменить вхождения find с одним из вариантов выше, чтобы сказать свое приложению игнорировать :id колонки.

+0

Спасибо за ответ! Мне действительно нужно узнать, как google: S. Я искал больше часа. –