Active Record在两个浮点之间找到使用条件

时间:2011-11-01 22:35:34

标签: 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不会变成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的组合。任何帮助表示赞赏!

注意:pvalue是一个浮点数,not_in是一个id数组,我不想让查询返回。

1 个答案:

答案 0 :(得分:0)

尝试

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