首页 > 解决方案 > 基于关联模型的 Rails 查询

问题描述

我正在尝试查找所有具有 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

协会:注册计划

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)但没有运气的查询。

标签: ruby-on-railsruby

解决方案


您应该查看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 关系进行了调整


推荐阅读