Detta uttryck:
to_tsvector('simple', (COALESCE(title::TEXT), ''))
är inte sargbar mot ditt index.
Du bör deklarera indexet på exakt det uttrycket som används i frågan:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', COALESCE(title::TEXT,'')))
(eller få ruby att generera uttrycket som används i indexet).
Om du vill att flera kolumner ska indexeras, sammanfoga dem bara:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', title || ' ' || product_type || ' ' || platform_id))
men återigen, Ruby bör filtrera på exakt samma uttryck för att indexet ska vara användbart.