В моих моделях у меня есть
class Group < ApplicationRecord
has_many :payments, as: :paymentable
has_many :users
end
class User < ApplicationRecord
has_many :payments, as: :paymentable
belongs_to :group
end
class Payment < ApplicationRecord
belongs_to :paymentable, polymorphic: true
end
Я хотел бы рассчитать сумму всех пользовательских платежей на группу , поэтому в контроллере у меня есть это:
Group.all.each do |group|
group.users.each do |user|
user.payments.each do |payment|
............
...............
end
end
end
Как мне устранить n + 1 запросов?
Я пытался
Group.includes(:users, :payments).each do |group|
но это приводит к загрузке платежей, принадлежащих группам, когда я хочу загрузить платежи, принадлежащие пользователям ...