Så fejlen var ikke i den kode jeg postede. Jeg havde en hjælper til at bestemme, hvilken kolonne jeg skulle bestille efter. Det så nogenlunde sådan her ud:
valid_names = Post.column_names
valid_names = valid_names.concat(["users.display_name", "subtopics.name",
"categories.category_name"])
valid_names.include?(params[:sort]) ? params[:sort] : "popularity"
Jeg vidste ikke, at dette faktisk ville sammenkæde de ekstra termer til Post.column_names
. Jeg løste dette problem ved at lave en kopi med Post.column_names.clone
og dette løste problemet.
Jeg føler mig ret dum ved at begå denne fejl, men forhåbentlig vil dette hjælpe en anden, der løber ind i det samme problem.