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

Rails Ransack gem如何实现单条件下传入数组查询多个event_id值

问题原因

你当前使用的event_id_eq是Ransack的单值等值匹配谓词,内部会自动对传入值执行to_i类型转换,当传入数组时就会触发undefined method 'to_i' for Array的报错。

解决方案

直接将查询条件中的event_id_eq替换为支持多值匹配的event_id_in谓词即可,该谓词天然兼容单个值、数组两种输入格式,Ransack会自动处理参数适配:

ransack("job_name_cont" => job_name, "event_id_in" => event_id).result

替换后无需额外添加参数类型判断逻辑,不管传入的event_id是单值(如"90"、90)还是数组(如[145,147,148]),都可以正常生成对应的SQL查询条件:单值时生成等值匹配逻辑,数组时生成IN多值匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:10