首頁 > 資料庫 > mysql教程 > 如何使用 ActiveRecord 在 Rails 應用程式中尋找未註冊的課程?

如何使用 ActiveRecord 在 Rails 應用程式中尋找未註冊的課程?

Barbara Streisand
發布: 2024-12-30 12:21:09
原創
280 人瀏覽過

How to Find Unenrolled Courses in a Rails Application Using ActiveRecord?

擷取與學生註冊不相關的課程

問題:

使用具有以下模型的Rails 應用程式:學生、Course 和StudentEnrollment,如何查詢Courses 表中不關聯的課程清單透過StudentEnrollment 表與學生聯繫?

解決方案:

要實現此目的,您可以使用 ActiveRecord 中的 JOIN 操作。但是,與接受表名作為參數的 joins() 方法不同,您也可以傳遞原始 SQL 字串來指定自訂連線條件。

具體來說,對於給定的查詢:

SELECT *
FROM Courses c LEFT JOIN StudentEnrollment se ON c.id = se.course_id
WHERE se.id IS NULL AND se.student_id = <SOME_STUDENT_ID_VALUE> and c.active = true
登入後複製

在Rails 中,您可以按如下方式執行此查詢:

Course.joins("LEFT JOIN student_enrollments ON courses.id = student_enrollments.course_id")
      .where("student_enrollments.id IS NULL AND student_enrollments.student_id = ?, courses.active = ?", <SOME_STUDENT_ID_VALUE>, true)
登入後複製

此查詢檢索所有與指定學生不關聯的課程Student_enrollments 表,同時也確保僅包含活躍課程。

以上是如何使用 ActiveRecord 在 Rails 應用程式中尋找未註冊的課程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板