関連するテーブルの "name"属性でクエリを並べ替えるときに、次のエラーが発生します。PG :: UndefinedTable:ERROR:テーブル "チーム"のFROM句のエントリがありません
エラー
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "team"
順序やorderiを削除するクエリ
: SELECT "team_seasons"."id" AS t0_r0, "team_seasons"."season_id" AS t0_r1, "team_seasons"."team_id" AS t0_r2, "team_seasons"."created_at" AS t0_r3, "team_seasons"."updated_at" AS t0_r4, "team_seasons"."points" AS t0_r5, "team_seasons"."goals_for" AS t0_r6, "team_seasons"."goals_against" AS t0_r7, "team_seasons"."games_played" AS t0_r8, "teams"."id" AS t1_r0, "teams"."name" AS t1_r1, "teams"."city" AS t1_r2, "teams"."created_at" AS t1_r3, "teams"."updated_at" AS t1_r4 FROM "team_seasons" LEFT OUTER JOIN "teams" ON "teams"."id" = "team_seasons"."team_id" WHERE "team_seasons"."season_id" = 1 ORDER BY team.name
SeasonsController.rb
class SeasonsController < ApplicationController
load_and_authorize_resource
def show
@season = Season.find(params[:id])
@teamseasons = TeamSeason.where(season: @season).includes(:team).order("team.name")
end
チームシーズレコードの属性によるエラーは発生しないので、関連するレコードの順序付けに関連するものであることがわかります。私はそれが私がする必要があったことを含むと思ったが、明らかにそれは動作していない。どんな助けも大歓迎です。
使用してみてください: '.INCLUDES(:チーム).references(:チーム).ORDER(チーム:名前を)'。 Rails 4+では、プライマリSQLクエリ( 'order'、' where'や 'select'のような)でインクルードされたリレーションを使いたい場合、参照する必要がありますので、LEFT JOINと2つの別々のSQLクエリを実行しません。 – MrYoshiji