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





Переопределите метод to_param в классах модели, чтобы числовой идентификатор по умолчанию был заменен значимой строкой. Например, в этом самом вопросе в URL-адресе используется лучшая постоянная ссылка для рельсов.
У Райана Бейтса есть Railscast по этой теме.
Посмотрите плагин permalink_fu (извлеченный из Mephisto) ... репозиторий Git - это расположен здесь.
В ActiveSupport есть новый метод в Rails для помощи в этом - String # parameterize. Соответствующая фиксация - здесь; в сообщении фиксации приведен пример "Дональд Э. Кнут" .parameterize => "donald-e-knuth"
В сочетании с переопределением to_param, упомянутым Джоном Топли, это значительно упрощает создание более удобных URL-адресов.
rsl's stringex довольно крутой, считайте, что permalink_fu сделано правильно.
Я в основном использую to_param, как предложил Джон Топли.
Не забудьте поместить индексы так, чтобы все, что вы используете в to_param, можно было быстро найти, иначе вы получите полное сканирование таблицы при каждом доступе. (Нет усилитель производительности!)
Быстрый обходной путь - поместить идентификатор где-нибудь там, и в этом случае ActiveRecord проигнорирует остальную часть как бесполезную и просто выполнит поиск по идентификатору. Вот почему вы видите много сайтов Rails с URL-адресами, подобными http://example.com/someController/123-a-half-readable-title.
Для получения более подробной информации об этом и других наблюдениях SEO из моего опыта работы с Rails вы можете найти эта страница на моем сайте.
На мой взгляд, friendly_id работает нормально, он также может генерировать ярлыки, поэтому вам не нужно беспокоиться о дублированных URL-адресах, также поддерживаются области действия.
Я сделал небольшой и простой драгоценный камень, который упрощает переопределение метода to_param. Его можно найти здесь.