Така че грешката не беше в кода, който публикувах. Имах помощник, за да определя по коя колона да подредя. Изглеждаше нещо подобно:
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"
Не знаех, че това всъщност ще свърже допълнителните условия към Post.column_names
. Поправих този проблем, като направих копие с Post.column_names.clone
и това реши проблема.
Чувствам се доста глупаво да направя тази грешка, но се надявам, че това ще помогне на някой друг, който се сблъсква със същия проблем.