Кэширующий плагин friendly_id - PullRequest
0 голосов
/ 28 августа 2009
Class Product < ActiveRecord::Base
  has_friendly_id :name, :use_slug => true
end

Какой самый эффективный способ хранения слизней в таблице «продукты». У меня сложные запросы поиска, и объединения с таблицей 'slugs' дают мне узкие места в производительности.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Хорошо, я знаю, что это старый вопрос, но просто хочу отметить, для других, которые могут наткнуться на это:

Фрагмент кода в вопросе взят из FriendlyId 3.x, и в этом случае вы добавляете столбец в таблицу (называйте его как угодно, кроме slug ... Я предпочитаю использовать cached_slug) в качестве строки и обновить модель, чтобы показать

Class Product < ActiveRecord::Base
  has_friendly_id :name, :use_slug => true, :cache_column => 'cached_slug'
end

Начиная с версии friendly_id 4.x, вы просто добавляете в таблицу столбец slug как string и используете новый синтаксис:

например:

Class Product < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, :use => :slugged
end

Существует множество вариантов и способов получить максимальную отдачу от friendly_id, включая исторические записи (чтобы избежать 404-х) и т. Д. *

Дополнительная информация: http://rubydoc.info/github/norman/friendly_id/master/frames

1 голос
/ 11 декабря 2009

Friendly_id теперь имеет встроенное кеширование слагов.

...