Мне интересно, есть ли способ извлечь объекты из БД через ActiveRecord, не используя Rails для сборки целых объектов (всего несколько полей).
Например,
Иногда мне нужно проверить, содержит ли определенный объект определенное поле.
Допустим, у меня есть объект Student, ссылающийся на объект Bag (у каждого студента есть одна сумка).
Мне нужно проверить, существует ли студентка, что в ее сумке больше 4 карандашей.
В ActiveRecord мне нужно было бы сделать что-то вроде этого:
exists = Student.female.find(:all, conditions => 'bags.pencil_count > 4', :include => :bag).size > 0
Проблема в том, что, если есть 1000 студентов, выполняющих это условие,
AR построит 1000 объектов, включая 1000 сумок.
Это сводит меня к использованию простого SQL для этого запроса (из соображений производительности), что нарушает AR.
Я не буду использовать именованные области, и я должен был бы помнить, чтобы обновить их все вокруг кода,
если что-то в названной области видимости изменится.
Это пример, но есть еще много случаев, по причинам производительности,
Я должен был бы использовать SQL вместо того, чтобы позволить AR строить много объектов,
и это нарушает инкапсуляцию.
Есть ли способ сказать AR не строить объекты или просто строить определенное поле (также в ассоциациях)?