Стандартный sql подзапрос к ActiveRecord Relation, возможно ли это? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть фрагмент кода, где я должен применить некоторые подзапросы.Я пытаюсь изменить этот кусок чистого SQL на более рельсовый путь.Возможно ли реализовать ActiveRecord Relation здесь?

Customer.joins("RIGHT JOIN customers_users ON customers_users.customer_id = customers.id").
         where("customers_users.user_id IN (
                                    SELECT user_id FROM customers_users
                                    GROUP BY customers_users.user_id
                                    HAVING COUNT(customers_users.user_id) = 1)")

1 Ответ

1 голос
/ 30 апреля 2019

Да, вы можете преобразовать его, как

Сначала создайте отношение к customer_users в модели клиента

Customer.joins(:customers_users).where(customers_users: { user_id: CustomersUser.select(:user_id).group(:user_id).having('COUNT(customers_users.user_id) = 1') })
...