Se você usa o thinking-sphinx , este é um bom truque se você precisa indexar atributos polimórficos.
No nosso caso, temos dúvidas que podem ser de campanhas ou startups. Portanto, essas perguntas são polimórficas. Mas ainda precisamos indexá-los. Aqui está a descrição do índice em SQL puro:
indexes "CASE questions.subject_type
WHEN 'Campaign' THEN (
SELECT campaigns.name
FROM campaigns
WHERE campaigns.id = questions.subject_id
)
WHEN 'Startup' THEN (
SELECT startups.name
FROM startups
WHERE startups.id = questions.subject_id
)
END", :as => :startup
obrigado @pedrocarrico !