Что может привести к тому, что сумма activerecord вернет неправильное значение? - PullRequest
0 голосов
/ 15 ноября 2018

Я получаю странный результат запроса activerecord и не могу понять, почему.

parent.children
=> #<ActiveRecord::AssociationRelation[#<Child id: 1, date: "2018-01-01", quantity: 10>]>

parent.children.size
=> 1

parent.children.group(:date).count
=> {Mon, 01 Jan 2018=>1}

parent.children.group(:date).sum(:quantity)
=> {Mon, 01 Jan 2018=>20}

Что может заставить sum вернуть 20?

Как видите, существует только одна запись, и суммируемое значение равно 10.sum должен вернуть 10.

На самом деле, вызов модели Child напрямую возвращает правильный результат.

Child(:date).sum(:quantity)
=> {Mon, 01 Jan 2018=>10}

Еще более запутанным является то, что этот конкретный метод вызывает озабоченность у нескольких моделей.В другом месте он рассчитывает правильную сумму.Только одна модель возвращает этот странный результат.

Почесывая голову, как отлаживать это, на самом деле, кажется, нет смысла.Как sum может вернуть значение больше ожидаемого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...