2008-09-17 5 views

ответ

6

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

Райан Бейтс имеет Railscast on this topic.

3

ActiveSupport имеет новый метод в Rails, чтобы помочь этому - параметр String #. Соответствующая фиксация - here; примером, приведенным в сообщении фиксации, является «Дональд Э. Кнут» .parameterize => «donald-e-knuth»

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

2

rsl's stringex является довольно устрашающим, подумайте, как permalink_fu сделано правильно.

2

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

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

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

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

1

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

0

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