記事に複数のタグ(および複数の記事にタグを付ける)を持つことができるモデルがあります。Articleには、製品とキットの2つのサブクラスがあります。製品にはカテゴリがありますが、キットにはありません。
特定のタグ(tag.idを知っています)のすべての記事(キットと製品の両方)を、製品のカテゴリをロードして(n + 1を回避して)取得するにはどうすればよいですか?
記事に複数のタグ(および複数の記事にタグを付ける)を持つことができるモデルがあります。Articleには、製品とキットの2つのサブクラスがあります。製品にはカテゴリがありますが、キットにはありません。
特定のタグ(tag.idを知っています)のすべての記事(キットと製品の両方)を、製品のカテゴリをロードして(n + 1を回避して)取得するにはどうすればよいですか?
アソシエーションがすでに設定されていると仮定すると(つまり、タグhas_many:articlesからarticle_tagsなど)、Rails 3を使用している場合は、検索時に#includesを使用できます。あなたのbelongs_to:categoryをあなたのArticleクラスに移動します(そうです、そうすることは意味的に大丈夫です)、そして:
@tag = Tag.first
@tag.articles.includes(:category)
動作するはずです。
http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations