это не сработает (многопоточность, работа с разными рельсами и т. Д.), Вы не можете ожидать, что при каждом запросе вы попадете в одну и ту же ветку приложения rails. Если ваш сервер выходит из строя, весь прогресс теряется! Таким образом, для сохранения (постоянно) данных в запросах / сессиях используется база данных.
Смоделируйте ваш трекер полноты как модель и сохраните его в своей базе данных.
Другое решение - использовать кэш приложений Rails.
Установка пары ключ / значение:
Rails.cache.write('mykey', 'myvalue');
Чтение:
cached_value = Rails.cache.read('mykey');
Подробнее о Rails Cache
Если вам нужно решение для больших наборов данных и быстрого доступа, я рекомендую вам использовать redis:
Вот хорошая статья , в частности, раздел «Использование Redis в качестве хранилища кеша Rails» и обзор раздела «Gems, связанные с Redis».
Важная вещь - это структура данных ключ / значение, я бы выбрал такие ключи, как
progress:user_id:requirements = [{ ...requirement 1 hash...}, {..requirement 2 hash.. }]