Deze uitdrukking:
to_tsvector('simple', (COALESCE(title::TEXT), ''))
kan niet worden vergeleken met uw index.
U moet de index declareren op precies die uitdrukking die in de query wordt gebruikt:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', COALESCE(title::TEXT,'')))
(of laat ruby de uitdrukking genereren die in de index wordt gebruikt).
Als u meerdere kolommen wilt indexeren, voegt u ze gewoon samen:
CREATE INDEX products_gin_title
ON products
USING GIN(to_tsvector('simple', title || ' ' || product_type || ' ' || platform_id))
maar nogmaals, Ruby zou op exact dezelfde uitdrukking moeten filteren om de index bruikbaar te maken.