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

「製品」テーブル内にスラッグを格納する最も効率的な方法は何ですか? 複雑な検索クエリがあり、「スラッグ」テーブルとの結合がパフォーマンスのボトルネックになっています。

4

2 に答える 2

2

わかりました。これは古い質問ですが、これに遭遇する可能性のある他の人のために、注意したいと思います。

質問のコードスニペットはFriendlyId3.xからのものです。この場合、テーブルに列を追加し(slug...以外は何でも呼び出しますcached_slug)、モデルを更新して表示します。

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

slugfriendly_id 4.xの時点では、テーブルに列を追加するだけでstring、新しい構文を使用できます。

例えば:

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

履歴レコード(404を回避するため)などを含む、friendly_idを最大限に活用するためのオプションと方法がたくさんあります...

詳細情報: http: //rubydoc.info/github/norman/friendly_id/master/frames

于 2012-03-03T07:52:58.347 に答える
1

Friendly_id にスラッグ キャッシュが組み込まれました。

于 2009-12-11T15:34:29.420 に答える