Вы должны сделать (отсутствует параметр для desc
):
Answer.any_in(:liker_ids=>to_use, :user_id.in=>to_use).desc(:created_at)
Но any_in здесь не используется правильно, он ведет себя подобно where
в этой ситуации.Вы, вероятно, хотите or
:
Answer.or(:liker_ids=>to_use).or(:user_id.in=>to_use).desc(:created_at)
# or
Answer.any_of({:liker_ids=>to_use}, {:user_id.in=>to_use}).desc(:created_at)
# or
Answer.or({:liker_ids=>to_use}, {:user_id.in=>to_use}).desc(:created_at)
Вам не нужно, чтобы map
в конце цепочки критериев, критерии mongoid загружаются лениво, когда они сталкиваются с методом, на который критерии не отвечают.Они также могут использовать курсоры mongodb, поэтому рекомендуется не использовать карту, если в этом нет необходимости.Вам следует использовать Criteia#only
или Criteria#without
, если вы хотите получить подмножество полей из mongodb.