Подтвердить что ты не робот

Как получить результирующий массив из Mongoid:: Criteria без "каждого" блока

Наше приложение использует ajax очень сильно, и в результате этого мы имеем такие выражения, как var items = #{@items.to_json} во всех наших представлениях. Теперь @items устанавливается в контроллере как @items=Item.all. Проблема в том, что @items является Mongoid::Criteria и не имеет метода .to_json. Таким образом, это вызывает ошибку при рендеринге представления. Есть ли простой способ преобразования этого объекта критериев в массив без использования кода типа @items.collect {|i| i}

4b9b3361

Ответ 1

Используйте метод #entries в критериях для запроса:

@items = Item.all.entries

Ответ 2

На самом деле, решение, которое я применяю, состоит в преобразовании в массив, поэтому я могу использовать силу критериев, а затем получить результаты. После преобразования в массив вы можете преобразовать в json

@items.to_a #Выполните записи

@items.to_a.to_json # дать вам окончательный json