Лучшая постоянная ссылка для Rails

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


person Devar-TTY    schedule 17.09.2008    source источник


Ответы (7)


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

У Райана Бейтса есть Railscast по этой теме.

person John Topley    schedule 17.09.2008

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

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

person Ben Scofield    schedule 17.09.2008

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

person Ryan Bigg    schedule 18.09.2008

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

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

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

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

person Patrick McKenzie    schedule 18.09.2008

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

person astropanic    schedule 22.07.2009

Ознакомьтесь с подключаемым модулем permalink_fu (извлеченным из Mephisto)... репозиторий Git находится здесь.

person jeannicolas    schedule 17.09.2008

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

person Thorbjørn Hermansen    schedule 22.07.2009