2017-08-17 64 views
-1

嘗試通過關聯表的「名稱」屬性排序查詢時出現以下錯誤。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記錄上的屬性不會產生錯誤,所以我知道它與相關記錄的排序有關。我認爲包括這一切是我需要做的,但顯然這不起作用。任何幫助深表感謝。

+0

使用try:'.includes(:團隊).references(:團隊).order(團隊:名稱)'。在Rails 4+中,如果要在主SQL查詢中使用包含的關係(如'order','where'或'select'),則需要引用它,以便觸發'LEFT JOIN'和不做2個獨立的SQL查詢。 – MrYoshiji

回答

0

嘗試在(記小號)改變team.nameteams.name

TeamSeason.where(season: @season).includes(:team).order("team.name")

+0

你有兩張名爲'teams'和'team'的表嗎? –

+1

理想情況下表名應以複數結尾 –

+0

這工作。謝謝!作爲一個方面說明,我只有一個名爲'teams'而沒有'team'表的表。 – dannymorty

相關問題