У меня возникла проблема с решением запроса с использованием ActiveRecord. Описание запроса: «Возврат маршруты, связанные с поездками, что агент создал»Проблемы с запросом соединения ActiveRecord
Это то, что я пробовал:
trips = Trip.where("agent_id = ? AND is_itinerary", params[:id])
.joins('LEFT JOIN itineraries ON trips.id = itineraries.trip_id LEFT JOIN users ON itineraries.user_id = users.id')
.select('trips.*, itineraries.status, users.*')
Результаты, кажется, хорошо, но проблема в том, возвращающийся идентификатор записей. Они дублируются, и вместо того, чтобы быть Trip.id, похоже, что возвращаемым идентификатором является User.id.
У кого-нибудь есть идеи, как его решить? Возможно, измените стратегию группировки по умолчанию?
Таблицы: маршруты (идентификатор, trip_id, user_id), экскурсии (ID, ...), User (идентификатор, ...)
Я думаю, что 'users. *' Переопределяет столбец 'id' от того, который приходит в' отключения. * ', Есть причина, по которой вы загружаете весь контент сразу в одном запросе вместо двух отдельных запросов с нетерпеливой загрузкой? – Surya
Ммм, не какая-то особая причина. Предлагаете ли вы разделить запрос на две части? Первый должен иметь, чтобы пользователи маршрутизации присоединились к части, не так ли? – halbano