Я перепробовал все комбинации находок, которые только мог придумать, и не добился 100% успеха. Какой предпочтительный (или любой другой способ, который работает) делает эту находку:
При использовании where, я получаю невозможность перебрать ошибку float.
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
Так что мне нужно сочетание условия хеширования и идентификатора, не находящегося в состоянии. Любая помощь приветствуется!
примечания: pvalue - это число с плавающей запятой, not_in - массив идентификаторов, которые я не хочу, чтобы запрос возвращал.