Så felet fanns inte i koden jag postade. Jag hade en medhjälpare för att avgöra vilken kolumn jag skulle beställa efter. Det såg ut ungefär så här:
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"
Föga anade jag att detta faktiskt skulle sammanfoga de extra termerna till Post.column_names
. Jag åtgärdade det här problemet genom att göra en kopia med Post.column_names.clone
och detta löste problemet.
Jag känner mig ganska dum som gör det här misstaget, men förhoppningsvis kommer detta att hjälpa någon annan som stöter på samma problem.