次のような関係を持つコメント、ケース、ケース ステップ、およびタスク テーブルがあります。
コメント モデル:
belongs_to :commentable, polymorphic: true, counter_cache: true
ケースモデル:
has_many :case_steps, class_name: 'CaseStep', foreign_key: 'case_id', dependent: :destroy
has_many :tasks, through: :case_steps
ケース ステップ モデル:
belongs_to :case, class_name: 'Case', foreign_key: 'case_id'
has_many :tasks, class_name: 'Task', foreign_key: 'case_step_id', dependent: :destroy
タスク モデル:
belongs_to :case_step, class_name: 'CaseStep', foreign_key: 'case_step_id'
case、case_steps、および tasks の 3 つのテーブルすべてに、comments_count というフィールドがあります。
ケース インデックス ページで、特定のケースに属するすべての commnts_count の数を表示する必要があります。ケース 'Case1' に 2 つのケース ステップ 'Case Step1' および 'Case Step2' があり、'Case Step1' に 3 つのタスク 'Task1'、'Task2' および 'Task3' があり、'Case Step2' に 2 つのタスク 'Task4' がある場合を意味します。 ' および 'Task5' の場合、'Case1'、'Case Step1'、'Case Step2'、'Task1'、'Task2' および 'Task3'、'Task4' および ' Task5'.
すべてのカウントを取得するための正確なクエリを作成する方法を取得しています...たくさん試しました。