0

Rails で Where 句を使用すると、奇妙な問題が発生します。OR 演算子の構文と関係があると思います。これが私のクエリです:

  Cookie.where("ID = ? OR ID = ? OR ID = ? OR ID = ?", chocolate.to_s, sugar.to_s, peanut_butter.to_s, oatmeal.to_s)

クエリを実行しようとすると、アプリケーションが無限にハングします。ただし、次のようなクエリを送信すると:

  Cookie.where("ID = ?", chocolate.to_s)

期待どおりの結果が得られます。この where 句の適切な形式に関するヘルプをいただければ幸いです。ありがとう。

更新 私はレールコンソールに入り、あなたが提案したようにしました。これが結果でした:

  SELECT \"TBLCookies\".* FROM \"TBLCookies\"  WHERE (ID in ('4','3','2','1'))

これは正しいようです。SQL Developer を開き、このクエリを貼り付けて実行しました。期待通りの結果が得られました。だから、すべてがうまくいっているようです。ただし、Rails コンソールでクエリを実行しようとすると、何も返されません。コンソールが無期限にハングします。何がうまくいかないのかについての洞察は素晴らしいでしょう。

4

1 に答える 1

1

なぜこれをしないのですか

Cookie.where("ID in (?)",[chocolate, sugar, peanut_butter, oatmeal].collect(&:to_s))
于 2012-10-14T06:57:26.500 に答える