2011-02-13 24 views
0

私はレールのクエリを持っている:なぜこれは常にtrueを返しますか?

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

これはtrueを返しています。私のデータベースの唯一の行は、xが0に設定されていて、1に設定されていません。

Ninja-edit:チェックしたところ、それは問題ではないようですが、常にtrueを返します。これの理由は何ですか?

+0

の線に沿ってより多くのあなたが実行されたものをSQLを確認しましだと思いますか?デバッグログで見つけることができます。 –

+2

model.exists(:x => 1、...)最初にどこにもなくても。また存在する?最初の理由がないはずの行ではないブール値を返すことになります。 –

+0

ありがとうございました!答えとして入れて、それを正しいとマークします。私は他の場所でそれを使用しています。なぜここで使用しようとしていたのですか? –

答えて

1

私が何をしたいことは

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

nate cのコメントは私の問題を解決しましたが、これもそうかもしれません。あなたのやり方に利点がない限り、それを試しても意味がありません。 –

+0

主な利点は、より読みやすいということです。 – Dty