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

Rails中如何关联两个ActiveRecord模型?或合并模型查询集合

无需新增关联模型,快速合并两个ActiveRecord模型的目标实例集合

我之前碰到过一个类似的需求:需要把Project和Competition这两个ActiveRecord模型里,hero_image属性不为空的实例合并成一个统一的集合,用来展示它们的hero_image。

一开始我想复杂了——计划创建第三个模型C,用它来关联Project和Competition,让C的实例能关联多个这两个模型的实例,以此来统一管理要展示的内容。

结果实际操作的时候才发现,完全没必要搞这么复杂!直接用数组相加就能轻松实现需求:

# 先筛选出hero_image不为空的实例,再合并成一个集合
projects.where.not(hero_image: nil) + competitions.where.not(hero_image: nil)

这个方法既不用额外维护新的模型和关联关系,代码还简洁直观,完美满足了展示所有符合条件的hero_image的需求。

内容的提问来源于stack exchange,提问作者C.Diezinger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:26:11