Область применения Rails с необработанным синтаксическим SQL-кодом - PullRequest
0 голосов
/ 23 мая 2018

У меня есть область действия на одной из моих моделей, где я использую сырой SQL (Postgres).Это выглядит так:

scope :with_rating, lambda {
  select <<~SQL
    sellers.*, ROUND(SUM(average_score * total_reviews) / SUM(total_reviews)) AS seller_rating, SUM(total_reviews) AS total_reviews
      FROM (
        SELECT
          (products.meta -> 'yotpo_bottom_line' ->> 'average_score')::numeric AS average_score,
          (products.meta -> 'yotpo_bottom_line' ->> 'total_reviews')::numeric AS total_reviews,
          sellers.*
        FROM sellers
      INNER JOIN products ON products.seller_id = sellers.id
    ) t JOIN sellers ON sellers.id = t.id
    GROUP BY sellers.id
  SQL
}

Однако, когда я пытаюсь его использовать, после GROUP BY Rails добавляется еще одна строка:

FROM "sellers" WHERE "sellers"."deleted_at" IS NULL AND "sellers"."id" = 1063 LIMIT 1;

Который выбрасывает:

ERROR:  syntax error at or near "FROM"
LINE 11: FROM "sellers" WHERE "sellers"."deleted_at" IS NULL AND "sel...
         ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...