次の AR 関連付けがあります。
Category :has_many :posts
Category :has_many :authors, :through => :posts
Post :belongs_to :author
Post :has_many :comments
私の見解では、私の目標は、投稿ごとにコメントをリストし、特定のカテゴリの作成者ごとに投稿をリストすることです。私のクエリの試みは次のようになります。熱心な読み込みにインクルードを使用します。
category = Category.first
category.authors.includes(:posts => comments)
ビューリストを次のようにしたいと思います:
author1
post1
comment1
post2
comment2
author2
post3
comment3
ただし、ActiveRecord::Relation オブジェクトを繰り返し処理しようとすると、最初のレベルの作成者に重複があり、サイズが投稿のサイズに等しいことに気付きました。最初のレベルで重複していない作成者を取得し、関連する投稿とそのコメントを反復処理できる方法はありますか?
私が考えた別の方法は、ActiveRecord::Relation オブジェクトを反復処理し、それをハッシュとして書き直すことでしたが、最初にこれを行う AR の方法があるかどうかを確認したかったのです。