В настоящее время я делаю это, чтобы получить данные из моих таблиц вполучение подсчет еще табличных значений в существующем запросе Rails
cameras = Camera.joins("left JOIN users on cameras.owner_id = users.id")
.joins("left JOIN vendor_models vm on cameras.model_id = vm.id")
.joins("left JOIN vendors v on vm.vendor_id = v.id")
.where(condition).order(sorting(col_for_order, order_for)).decorate
И это порождает такой запрос, как
SELECT "cameras".* FROM "cameras" left JOIN users on cameras.owner_id = users.id left JOIN vendor_models vm on cameras.model_id = vm.id left JOIN vendors v on vm.vendor_id = v.id
У меня есть другой стол, как camera_shares
, на котором у меня есть отношение стола камеры, так как есть camera_id
, который присутствует в таблице camera_shares
, а также в каждом camera_shares
есть camera_id
, которые сообщают нам, что доля для камеры, I хотите рассчитать подсчет camera_shares
, например, если есть камера с идентификатором 12
и есть также 20 camera_shares
с camera_id
= 12
, то я хочу посчитать его количество. Я хочу сделать это в Rails-запросе, как я показал выше? Как это можно сделать?
Почему нижняя сторона? Пожалуйста, не стесняйтесь оставлять комментарий, если что-то не так с моим ответом. – EJ2015
Я знаю, как я могу это сделать так, как вы упомянули выше. НО я хочу в запросе с 'joins', я ищу способ, которым я могу использовать' count' в активных записях, чтобы получить это –
Вы имели в виду, что хотите использовать Camera.joins (...) для этого? Это не сработает, независимо от того, к чему вы присоединяетесь. Поскольку запрос будет выбирать «камеры», а не «camera_shares». – EJ2015