gpt4 book ai didi

ruby-on-rails - 事件记录检查属性是否在基于另一个属性的数组中

转载 作者:行者123 更新时间:2023-11-29 14:30:32 25 4
gpt4 key购买 nike

在我的 Ruby on Rails 项目中,我有一个 Message 模型,它的属性 direction 为“传入”或“传出”。 Message 的另一个属性是 body,它表示消息的实际内容。我正在使用 Rails 5.1.2。

现在,我想选择消息,同时排除正文在数组中的传入消息,比如 ['a','b','c']

例如,如果我的数据库中有以下消息:

{direction: 'outgoing', body: 'a'}
{direction: 'outgoing', body: 'b'}
{direction: 'outgoing', body: 'd'}
{direction: 'incoming', body: 'd'}
{direction: 'incoming', body: 'c'}

我只想选择除最后一条消息之外的消息,即 {direction: 'incoming', body: 'c'}

我试过了

Message.where.not(["direction = ? and body != ?","incoming","['a','b','c']"]) 这个只返回给我传出的消息,但缺少正文为“d”的传入消息。

有什么建议吗?谢谢。

最佳答案

根据帖子中提到的描述,您想在数组对象上使用 sql 来拒绝元素。

为此修改查询以接受数组作为参数而不是帖子中提到的字符串。

Message.where.not("direction = ? and body IN (?)","incoming",['a','b','c'])

关于ruby-on-rails - 事件记录检查属性是否在基于另一个属性的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52429740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com