簡體   English   中英

基於關聯模型的 Rails 查詢

[英]Rails Query Based on Associated Models

我正在嘗試使用 plan_type_id = 1 查找所有 EnrollmentPlan,因此我需要使用 EnrollmentPlan 表中的 plan_id 從 Plan 表中獲取 plan_type_id 以便查詢 EnrollmentPlan 表。

我有三個模型:

播放類型 => :id, :name

計划 => :id, :name, :plan_type_id

注冊計划 => :id, :enrollment_id, :plan_id

協會:EnrollmentPlan

belongs_to :plan
has_one :plan_type, through: :plan

計划:

has_many :enrollment_plans
belongs_to :plan_type

我正在嘗試像EnrollmentPlan.joins(:plans).where(plans.plan_type_id: 1)但沒有運氣。

您應該查看https://guides.rubyonrails.org/active_record_querying.html

他們舉的例子是:

Author.joins(:articles).where(articles: { author: author })

所以在你的情況下:

EnrollmentPlan.joins(:plan).where(plans: { plan_type_id: 1 })

編輯:正如@steve 所說,以上是針對 has_many 的。 調整為 has_one 關系

我會說使用包含而不是連接它不會觸發 n+1 查詢

EnrollmentPlan.includes(:plans).where(plans: { plan_type_id: 1 }).references(:plans)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM