В приложении Rails 2.3.5 у меня есть что-то вроде следующих моделей:
class Foo < ActiveRecord::Base
has_many :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
И когда я звоню
Foo.all(:include => :bars)
Я вижу следующие запросы в консоли:
SELECT * FROM "foos"
SELECT "bars".* FROM "bars" WHERE ("bars".foo_id IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21))
со всеми идентификаторами foo в предложении where.
Полагаю, это не оптимальный запрос, хотя число идентификаторов может быть большим, и мне нужно предварительно загрузить все «бары». Кроме того, на самом деле у меня есть не две модели, а их цепочка.
Есть ли способ сделать запрос на загрузку похожим на
SELECT "bars".* FROM "bars"
когда я использую найти все?