Нет никакой автоупаковки для массивов, только для примитивов. Я полагаю, что это - Ваша проблема.
:joins
версия ActiveRecord СОЕДИНЕНИЙ, запроса SQL.
Store.joins(:car).to_sql
=> SELECT stores.* FROM stores INNER JOIN cars ON cars.store_id = categories.id
Так позади замеченного это - неявное INNER JOIN
. Это таким образом действительно возвратит все хранилища, которые имеют автомобиль (из-за эти inner_join
, left_outer_join
имел бы другое поведение). Посмотрите больше здесь .
принимая во внимание, что :includes
не команда запроса. Это решает проблему запроса n+1 eager_loading
модель Car на модели Store. Посмотрите больше один eager_loading
здесь .
stores = Store.includes(:car)
таким образом возвратит все хранилища и позволяет делать stores.first.car
, не запуская новый запрос.