0
私はForum
とForumTag
HABTM関係を持っています。私はまた@tags
という名前の変数の配列を持っています。この配列には、フォーラムをフィルタリングするために使用するいくつかのForumTagsの名前が含まれています。私は現在、配列@タグ内のすべてのタグを持つすべてのフォーラムを取得するためにクエリを実行します。クエリから欠損値を取得する方法は?
@forums = Forum.joins(:forum_tags).where(:forum_tags => {:name => @tags})
.group("forums.id").having(['COUNT(*) = ?', @tags.length])
.includes(:forum_tags).all
しかし、返されたフォーラムに含まれていて、配列には含まれていないタグも検索できます。質問ページの右側にあるStackoverflowの 'Related Tags'のリストに似ています。例えば
、私は4回のフォーラムがある場合:
forum A = tags are ['foo', 'bar']
forum B = tags are ['foo', 'bar', 'blah']
forum C = tags are ['foo', 'bar', 'blee']
forum D = tags are ['blah']
if @tags = ['foo','bar'], then it should return ['blah','blee']
with the count on blah=1, and count on blee=1