Índice polimórfico? Sem problemas!

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 !