[英]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.