在GraphiQL中使用ransack传递重复参数,实现多状态排除查询
解决Ransack GraphQL查询中重复输入字段的错误
问题原因
你遇到的错误是因为GraphQL输入对象不允许存在同名字段,重复定义两次status_not_eq违反了GraphQL的输入规则。同时,Ransack处理多值排除场景时,也不该用重复的not_eq,而是要用专门的多值排除语法。
正确查询语句
把重复的status_not_eq替换为status_not_in,传入包含要排除值的数组即可:
{ invoice( q: {id_eq: 7, status_not_in: ["A", "B"]} ) { status paymentStatus } }
补充说明
Ransack针对多值匹配/排除提供了特定后缀:
xxx_in: ["值1", "值2"]:匹配字段等于数组中任意值的记录xxx_not_in: ["值1", "值2"]:匹配字段不等于数组中所有值的记录
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

