• 1000 фильтрация Я получаю сообщение об ошибке:
PostgreSQL: PG::DuplicateAlias: ERROR: table name "users" specified more than once
До возникновения ошибки JOIN уже находится в запросе -
$ pry> relation.to_sql
SELECT \"posts\".* FROM \"posts\"
INNER JOIN users ON users.id = posts.user_id
WHERE \"posts\".\"created_at\" BETWEEN '2019-05-01 00:00:00'
AND '2020-05-01 23:59:59' AND \"users\".\"type\" = 'Guest'"
Я хочу исправить это, проверив, является ли таблица уже присоединился к моему объекту ActiveRecord :: Relation. Я добавил:
def join_users
return relation if /JOIN users/.match? relation.to_sql
relation.joins('LEFT JOIN users ON users.id = posts.user_id')
end
Это решение работает, но мне интересно - есть ли лучший способ проверить, находится ли JOIN внутри отношения?