Найти общий объем хранилища вложений дочерних ресурсов - Скрепки для бумаг
Я строю приложение рельсы, которое имеет модели Users
, Album
(как в фотоальбоме) и Photo
Вложены в таком порядке. Я хочу, чтобы можно было найти общий объем памяти, используемый альбомами пользователя.
От Album
Уровень, я могу найти общий объем памяти, используемый фотографиями в этом альбоме. то есть:
album = Album.first
album.photos.sum(:image_file_size)
Но я хочу быть в состоянии сделать это из User
уровень для фотографий всех альбомов.
Есть ли элегантный способ сделать это?
Спасибо!
1 ответ
Решение
Предполагая, что каждый User
имеет много Albums
и каждый Album
имеет много Photos
, Вы можете получить общий объем памяти, использованный для первого User
используя приведенное ниже утверждение.
User.find(1).albums.map(&:photos).flatten.pluck(:image_file_size).sum