【发布时间】:2012-05-16 01:22:36
【问题描述】:
我有这样的声明:
myuser.orders.exists?(['(orderstatus = ?) ', statusid])
它返回true,因为有一个与statusid匹配的orderstatus。
接下来我有:
myuser.orders.where('id not in (?)', nil).exists?(['(orderstatus = ?) ', statusid])
这在我认为它可能返回 true 的地方返回 false,因为没有 id 为 nil。
那么我有:
myuser.orders.where(nil).exists?(['(orderstatus = ?) ', statusid])
这返回真。
我的问题是为什么中间语句返回 false?它不会抱怨或抛出任何错误。我想我使用 nil 错误,但有人可以解释一下吗?
【问题讨论】:
-
在您的日志中查看第二条语句生成的查询。如果它没有对您的问题提供解释,也请在此处发布。
标签: ruby-on-rails activerecord rails-activerecord