私はWeb開発とレールが初めてで、初めてクエリオブジェクトを作成しようとしています。私はテーブルPlayersとテーブルfor DefieStatsを持っていますが、このテーブルの各行はプレーヤーに属しています。プレイヤーにはフィールドapi_player_numberがあります。これは私が参照している第三者が使用しているIDです。 DefensiveStatsオブジェクトには、このクエリに関連する2つのフィールド(season_number整数とweek_number整数)があります。私がしたいのは、api_player_number、season_number、およびweek_numberという3つのパラメータを取る単一のクエリを構築することです.pi_player_number =が渡されたプレーヤに属する、対応する季節および週番号を持つDefensiveStatsオブジェクトを返す必要がありますapi_player_number。 - 特に>Rails、各テーブルのwhere句を持つ2つのテーブルを結合する
class DefensiveStatsWeekInSeasonQuery
def initialize(season_number, week_number, api_player_number)
@season_number = season_number
@week_number = week_number
@api_player_number = api_player_number
end
# data method always returns an object or list of object, not a relation
def data
defensive_stats = Player.where(api_player_number: @api_player_number)
.joins(:defensive_stats)
.where(season_number:@season_number, week_number: @week_number)
if defensive_stats.nil?
defensive_stats = DefensiveStats.new
end
defensive_stats
end
エンド
を、第2場所プレーヤークラスの句、およびないDefensiveStatsクラスを実行しかし、これは、動作しません。ここで
は、私がしようとしているものです、 "SQLite3 :: SQLException:そのような列はありません:players.season_number"
このクエリはどのように構成できますか?ありがとうございました!!!
ありがとう!これは完璧です –