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

Rails使用join+pluck获取Buyer ID出错,返回BananaSaleTicket ID求助

解决方法

当通过joins关联多个表且字段名重复时,ActiveRecord会默认选取**主表(这里是banana_sale_tickets)**的同名字段,所以你需要明确指定要获取buyers表的id:

方法一:直接指定表名字段

previous_banana_buyers_ids = @banana_stand.banana_sale_tickets.joins(:buyer).pluck('buyers.id')

方法二:用Arel避免硬编码(更健壮)

利用Rails的Arel查询构造器,通过模型的表对象指定字段,减少拼写错误风险:

previous_banana_buyers_ids = @banana_stand.banana_sale_tickets.joins(:buyer).pluck(Buyer.arel_table[:id])

额外优化:去重唯一买家ID

如果同一个买家可能多次购买,想要获取不重复的买家ID,加上distinct:

previous_banana_buyers_ids = @banana_stand.banana_sale_tickets.joins(:buyer).distinct.pluck('buyers.id')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:57:33