Вопрос

Как вы думаете, какой лучший способ создавать SEO-дружественные URL-адреса (динамически) в Rails?

Это было полезно?

Решение

Переопределить to_param используйте метод в ваших классах модели, чтобы числовой идентификатор по умолчанию был заменен значимой строкой.Например, этот самый вопрос использует лучшая постоянная ссылка для rails в URL-адресе.

У Райана Бейтса есть Железнодорожный репортаж на эту тему.

Другие советы

У ActiveSupport есть новый метод в Rails для облегчения этого - String#parameterize.Соответствующий коммит является здесь;пример, приведенный в сообщении о фиксации, - "Дональд Э.Knuth".parameterize => "Дональд-и-Кнут"

В сочетании с переопределением to_param, упомянутым Джоном Топли, это значительно упрощает создание дружественных URL-адресов.

строковый индекс rsl это довольно круто, думайте об этом как о том, что permalink_fu сделано правильно.

Я в основном использую to_param как предложил Джон Топли.

Не забудьте разместить индексы таким образом, чтобы все, что вы используете в to_param, было доступно для быстрого поиска, иначе в итоге вы получите полное сканирование таблицы при каждом доступе.(Нет усилитель производительности!)

Быстрый способ решения проблемы - поместить идентификатор куда-нибудь туда, и в этом случае ActiveRecord проигнорирует остальную его часть как ненужную и просто выполнит поиск по идентификатору.Вот почему вы видите много сайтов Rails с такими URL-адресами, как http://example.com/someController/123-a-half-readable-title .

Для получения более подробной информации об этом и других наблюдениях SEO из моего опыта работы с Rails вы можете найти эта страница на моем сайте полезно.

Для меня friendly_id работает нормально, он также может генерировать слаги, так что вам не нужно беспокоиться о дублирующихся URL-адресах, области также поддерживаются.

Ознакомьтесь с плагином permalink_fu (извлечен из Mephisto)...репозиторий Git - это расположенный здесь.

Я создал небольшой и простой gem, который упрощает переопределение метода to_param.Это можно найти здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top