You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定Rails Active Record查询中获取所有猫咪ID?

获取关联查询中的猫咪ID

模型关联关系

  • User 拥有多个 Cat
  • Vaccinations 拥有多个 Cat
  • Cat 属于 Vaccination
  • 命名空间下的 User::CatRecords 模型属于 Cat

当前尝试的查询

User::CatRecords.joins(cat: :vaccinations).merge(Cat.vaccinated)

实现方法

要提取该查询中所有猫咪的ID,有两种常用方式:

方式1:直接提取cat_id字段

利用pluck方法直接获取User::CatRecords表中的关联猫咪ID:

User::CatRecords.joins(cat: :vaccinations).merge(Cat.vaccinated).pluck(:cat_id)

方式2:从关联的Cat表提取ID(去重)

如果同一只猫咪对应多条CatRecords记录,可通过distinct避免返回重复ID:

User::CatRecords.joins(cat: :vaccinations).merge(Cat.vaccinated).pluck('DISTINCT cats.id')

也可以用更清晰的链式写法:

User::CatRecords.joins(cat: :vaccinations)
                .merge(Cat.vaccinated)
                .select('cats.id')
                .distinct
                .pluck('cats.id')

内容的提问来源于stack exchange,提问作者Manav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:52:03