Ruby on Rails链查询返回不为零的那些

我正在查询active Record,并希望将两个查询链接在一起。

我的问题是,当我想返回属性为nil的那些记录时,它不会返回我知道存在的任何记录:

user.change_requests.where("action_at = ?",req.action_at).where("cancelled_at != ?",nil)

这基本上返回一个空数组,但是我期望一个change_requests

的数组
aiqingchufeng2 回答:Ruby on Rails链查询返回不为零的那些

Max在上面的评论中有正确的答案。编写SQL where.not时可以使用ActiveRecord NOT语法。

来自ActiveRecord docs

  

2.4 NOT条件

     

where.not不能建立SQL查询:

     

Client.where.not(locked: true)

     

换句话说,此查询可以是   通过调用不带参数的where生成,然后立即链接   没有通过条件的地方。这将生成如下所示的SQL:

     

SELECT * FROM clients WHERE (clients.locked != 1)

对于您的特定情况,代码如下:

user.change_requests.where(action_at: req.action_at).where.not(cancelled_at: nil)
本文链接:https://www.f2er.com/3164966.html

大家都在问