bugfix> ruby-on-rails > 投稿

Ruby 2.1.5およびRails 4.0.xからRuby 2.2.8およびRails 4.2.7にアップグレードするRailsアプリがあります。更新後、次のクエリが機能しなくなったことがわかりました。

@courses = Course.where(active: true).joins(:course_classes).where(:course_classes => { active: true, class_type: "live"}).includes(:live_class_dates).where('live_class_dates.start_date >= ?', Date.today)

「includes」メソッドが問題のようです。インクルードを結合に置き換えようとしましたが、これは最後のwhere句を無視または誤って解釈しているようです。

まず、これはRubyまたはRailsの問題ですか?次に、これを置き換えるためのクエリに関する提案はありますか?

前もって感謝します。

更新:ここに私が得ているエラー全体があります:

PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "live_class_dates"
LINE 1: ... = $2 AND "course_classes"."class_type" = $3 AND (live_class...
                                                             ^
: SELECT "courses".* FROM "courses" INNER JOIN "course_classes" ON "course_classes"."course_id" = "courses"."id" WHERE "courses"."active" = $1 AND "course_classes"."active" = $2 AND "course_classes"."class_type" = $3 AND (live_class_dates.start_date >= '2018-06-25')  ORDER BY "courses"."title" ASC