嘗試通過關聯表的「名稱」屬性排序查詢時出現以下錯誤。PG :: UndefinedTable:錯誤:缺少表「團隊」的FROM子句條目
錯誤
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "team"
查詢
: 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
卸下順序或orderi ng通過teamseason記錄上的屬性不會產生錯誤,所以我知道它與相關記錄的排序有關。我認爲包括這一切是我需要做的,但顯然這不起作用。任何幫助深表感謝。
使用try:'.includes(:團隊).references(:團隊).order(團隊:名稱)'。在Rails 4+中,如果要在主SQL查詢中使用包含的關係(如'order','where'或'select'),則需要引用它,以便觸發'LEFT JOIN'和不做2個獨立的SQL查詢。 – MrYoshiji