Ruby on rails 为什么这总是会变成现实?

Ruby on rails 为什么这总是会变成现实?,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有一个rails查询: Model.exists?(where(:x => 1, :y => y, :z => z).first) 这是真的。数据库中唯一一行的x设置为0,而不是1。对此有何解释 忍者编辑:我检查过了,似乎所有的值都不重要,它总是返回true。这是什么原因?我想你想要的更多的是 Model.where(:x => 1, :y => y, :z => z).exists? 您是否检查了执行的SQL语句?您可以在调试日志.model.exis

我有一个rails查询:

Model.exists?(where(:x => 1, :y => y, :z => z).first)
这是真的。数据库中唯一一行的x设置为0,而不是1。对此有何解释


忍者编辑:我检查过了,似乎所有的值都不重要,它总是返回true。这是什么原因?

我想你想要的更多的是

Model.where(:x => 1, :y => y, :z => z).exists?

您是否检查了执行的SQL语句?您可以在调试日志.model.exists(:x=>1,…)中找到它,不带where和first。也存在吗?将返回一个布尔值而不是一行,应该没有理由先返回。谢谢!把它作为答案,我会把它标对的。我在其他地方使用where,它可以工作,这就是为什么我在这里尝试使用它。nate c的评论为我解决了问题,但这也可能。除非按你的方式做有好处,否则我没必要尝试。