私は、関連付けを通してhas_manyを入れ子にして実装しようとしています。私はアンパイアを通してチームとマッチの関係を確立する必要があります。私は関連付けを通して5つのhas_manyを使ってそれをしません。私Umpire.first.matches
作品についてRails has_many、ネストされた関連付けを達成する方法は?
class Team < ApplicationRecord
has_many :umpires
has_many :matches, through: :umpires
end
class Umpire < ApplicationRecord
belongs_to :team
has_many :matches, -> (umpire){ unscope(where: :umpire_id).where('matches.first_umpire_id = :umpire_id OR matches.second_umpire_id = :umpire_id', umpire_id: umpire.id,)}
end
class Match < ApplicationRecord
# first_umpire_id (integer)
# second_umpire_id (integer)
end
が、私はTeam.first.matches
をしようとすると、私は次のエラーを取得:ここ
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'matches.umpire_id' in 'on clause': SELECT `matches`.* FROM `matches` INNER JOIN `umpires` ON `matches`.`umpire_id` = `umpires`.`id` WHERE `umpires`.`team_id` = 1 AND (matches.first_umpire_id = 1 OR matches.second_umpire_id = 1)
マッチには、2つのアンパイア「first_umpire_id」、「second_umpire_id」があります。アンパイアは、第1審判または第2審判としての試合に関連付けることができます。この修正プログラムが動作するかどうかは不明です。 –