Rails 3将OR与where子句一起使用时出错

时间:2012-10-12 15:38:19

标签: ruby-on-rails-3

在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子句的正确格式的帮助将不胜感激。感谢。

更新 我按照你的建议进入了rails控制台。这就是结果:

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

这似乎是正确的。我打开了SQL Developer,粘贴了这个查询,然后运行它。我得到了预期的结果。所以一切似乎都很好。但是,当我尝试在rails控制台中运行查询时,我得不到任何回复。控制台只是无限期挂起。任何可能出现问题的见解都会很棒。

1 个答案:

答案 0 :(得分:1)

为什么不这样做

Cookie.where("ID in (?)",[chocolate, sugar, peanut_butter, oatmeal].collect(&:to_s))