У меня есть таблица topic_followers со схемой, подобной этой
id, user_id, topic_id, creation_date, modified_date
Я хочу сгенерировать хеш из этой таблицы с ключом user_id и массивом topic_ids, за которым этот пользователь следит в качестве значения.В настоящее время я пытаюсь использовать следующий код для достижения этой цели:
topic_followers = TopicFollower.select("user_id, topic_id")
topic_follower_hash = {}
topic_followers.each do |topic_follower|
topic_follower_hash[topic_follower.user_id] = topic_follower_hash[topic_follower.user_id] || []
topic_follower_hash[topic_follower.user_id] << topic_follower.topic_id
end
Дело в том, что это большая таблица, и я боюсь, что она уничтожит мою память.Я немного погуглил, и в некоторых статьях предлагалось использовать find_in_batches.Я не думаю, что это соответствует моим потребностям, так как некоторые темы, за которыми следит пользователь, могут отсутствовать в текущем пакете.Хотите знать, какова рекомендуемая практика для решения такого рода проблем?