Задать вопрос

Как вести счет объектам в Active Record, не используя id?

Приветствую!

Описание моей проблемы и ее решение другим способом
Есть ряд объектов в базе данных rails приложения. Чтобы объяснить, что я с ними делаю, приведу аналогию, иначе сложно.
Допустим, это кружки, которые я один за другим закрашиваю. У меня, пользователя, в профиле выводится процент прогресса моего закрашивания. Мне его надо посчитать.
У каждого кружка есть id, и я бы просто поделил его на количество кружков, но оказалось, что id идут совершенно не по порядку (то есть в консоли при выводе кружок.first(5) выводится 5 первых в моей последовательности кружков, но с id = {156, 178,243,312,112} ).

Как мне посчитать сколько кружков я уже закрасил, если я знаю их общее количество и id последнего мною закрашенного?

upd. после первого же комментария понял, что больше намудрил с аналогиями.
В целом, у меня анкета с вопросами, прогресс заполнения которой мне надо посчитать. В принципе, есть колонка "ответы", в которой хранятся значения моих ответов на вопросы, которой я могу обратиться и узнать, сколько ответов я уже дал, но это затратно выходит и хотелось бы обойти по возможности.

upd2. Я придумал оптимальное для меня решение для этой задачи - думаю посчитать один раз для всех существующих пользователей количество отвеченных вопросов, создать поле answers и хранить его там, а при каждом новом ответе на вопрос просто повышать это значение на один.

Но все-таки вопрос актуален:


Есть ли средство в ruby/rails, чтобы посчитать количество объектов, стоящих перед объектом со значением поля, известным мне?
  • Вопрос задан
  • 2417 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@iamnothing
Можно добавить поле, в котором будет сохраняться признак - закрашен или нет. И затем считать отношение закрашеных к общему количеству.

Upd: Можно использовать любое хранилище, где вы будете для конкретного пользователя хранить кол-во вопросов (так понимаю, для этой задачки вам достаточно знать только число - его и сохраняйте), на которые уже был дан ответ - БД, сессия, что там еще в рельсах можно использовать? И опять же находить отношение кол-ва отвеченых к кол-ву всех вопросов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы