Also war der Fehler nicht in dem Code, den ich gepostet habe. Ich hatte einen Helfer, um zu bestimmen, nach welcher Spalte ich bestellen sollte. Es sah etwa so aus:
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"
Ich wusste nicht, dass dies die zusätzlichen Begriffe tatsächlich zu Post.column_names
verketten würde . Ich habe dieses Problem behoben, indem ich eine Kopie mit Post.column_names.clone
erstellt habe und dies löste das Problem.
Ich komme mir ziemlich dumm vor, diesen Fehler zu machen, aber hoffentlich hilft es jemand anderem, der auf das gleiche Problem stößt.