0

では、Post、Category、Categorizations モデルがあるとしましょう。

投稿は、分類によって多くのカテゴリを持つことができます。

では、カテゴリの配列の少なくとも 1 つの項目に一致するすべての投稿を引き出すにはどうすればよいでしょうか?

例:

Post 1 has categories 2,5,6
Post 2 has categories 1,5,9
Post 3 has categories 2,4,8
Find posts that match 3,5

投稿1と2を返してほしい。

ありがとう!

4

1 に答える 1

1

Categorizationとの結合モデルであると仮定するPostCategory:

Post.joins(:categorizations).where(:categorizations => {:category_id => [3, 5]})

そうでない場合、Categorization実際には次のようにhas_many :categoriesなります。

Post.joins(:categories).where(:categories=> {:id => [3, 5]})

2 番目の方法は最初のケースでも機能しますが、2 つの SQL 結合が必要になるため、うまく機能しない可能性があることに注意してください。

于 2013-05-30T04:18:18.920 に答える