私の質問に対する答えがあります-acts-as-taggable-onを使用してタグのないエントリを見つける方法は?
残念ながら非常に非効率的です。ループ中にデータベースに1回ヒットします
10,000 件のレコードがあり、それらすべてをループして、コードが 10,000 件すべてに対して 1 つのクエリにヒットした場合、それは受け入れられません。
より効率的なソリューションを探しています。
ありがとう。
私の質問に対する答えがあります-acts-as-taggable-onを使用してタグのないエントリを見つける方法は?
残念ながら非常に非効率的です。ループ中にデータベースに1回ヒットします
10,000 件のレコードがあり、それらすべてをループして、コードが 10,000 件すべてに対して 1 つのクエリにヒットした場合、それは受け入れられません。
より効率的なソリューションを探しています。
ありがとう。
私はこの解決策を提案します(モデル候補の例):
Candidate.all - Candidate.joins("JOIN taggings on taggings.taggable_id = candidates.id").where("taggings.taggable_type = 'Candidate'")
テーブルにオブジェクトがいくつあるかに関係なく、このヒットデータベースは2回だけです。
スコープとしてのこれに対する私の解決策は次のとおりです。
scope :no_tags, joins('LEFT JOIN taggings ON taggings.taggable_id = assets.id AND taggings.taggable_type = "Asset"').where('taggings.id IS NULL')