缓存friendly_id插件

时间:2009-08-28 15:10:42

标签: ruby-on-rails seo friendly-id

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

将“slugs”存储在“products”表中的最有效方法是什么。 我有复杂的查找查询,与'slugs'表的连接给我带来了性能瓶颈。

2 个答案:

答案 0 :(得分:2)

好的,我知道这是一个老问题,但只是想注意,对于其他可能偶然发现的问题:

问题中的代码段来自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 :(得分:1)

Friendly_id现在有内置的slug缓存。