Sql 两个浮动之间的活动记录查找使用条件

Sql 两个浮动之间的活动记录查找使用条件,sql,ruby-on-rails,ruby-on-rails-3,activerecord,Sql,Ruby On Rails,Ruby On Rails 3,Activerecord,我尝试了我能想到的所有发现组合,但没有100%成功。做这件事的首选方法(或任何可行的方法)是什么 当使用where时,我得到一个不能迭代浮点的错误 Question.where('id not in (?) AND rating.id = ? AND pvalue BETWEEN ?', not_in, rating_id, 0.0..100.0).limit(25) 使用条件散列时,我不知道如何将结果也限制在数组中。所以我尝试了两个条件,但我认为'id not in(?)部分永远不会转换为s

我尝试了我能想到的所有发现组合,但没有100%成功。做这件事的首选方法(或任何可行的方法)是什么

当使用where时,我得到一个不能迭代浮点的错误

Question.where('id not in (?) AND rating.id = ? AND pvalue BETWEEN ?', not_in, rating_id, 0.0..100.0).limit(25)
使用条件散列时,我不知道如何将结果也限制在数组中。所以我尝试了两个条件,但我认为'id not in(?)部分永远不会转换为sql…它返回not_in数组中的结果

Question.find_all_by_rating_id(rating_id, :limit=>25, :conditions => ['id not in (?)', not_in], :conditions=>{:pvalue => 0.0..100.0})
上面跳过了第一个条件(不管怎么说,有两个条件看起来并不合适…)并返回

SELECT "questions".* FROM "questions" WHERE "questions"."rating_id" = 458 AND ("questions"."pvalue" BETWEEN 0.0 AND 100.0) LIMIT 25
因此,我需要哈希条件和id not in条件的组合。感谢您的帮助

注意:pvalue是一个float,not_in是我不希望查询返回的ID数组。

试试看

Question.where("id not in (?) AND rating.id = ? AND pvalue BETWEEN ? AND ?", 
  not_in, 
  rating_id, 
  0.0, 100.0
).limit(25)