если вы проведете дополнительное исследование, вы обнаружите, что он действительно возвращает объект отношения.
Но при необходимости он преобразует его в массив.
А именно, если вы находитесь в консоли и говорите > Item.includes(:user).for_user(3)
, она попытается проверить ее и, следовательно, выполнить преобразование.
Но непременно сработает следующее
scope = Item.includes(:user).for_user(3)
# does a db count
scope.count
# does a db select limit 1
scope.first
# does a full db select
scope.all