How to get the resultant array from a Mongoid::Criteria without an "each" block

Khaja Minhajuddin picture Khaja Minhajuddin · Dec 21, 2010 · Viewed 9.1k times · Source

Our application uses ajax very heavily and as a result of this we have statements like var items = #{@items.to_json} in all our views. Now @items is being set in the controller as @items=Item.all. The problem is that @items is a Mongoid::Criteria and it doesn't have a .to_json method. So, it's throwing up an error while rendering the view. Is there an easy way to convert this criteria object into an array without using code like @items.collect {|i| i}

Answer

shingara picture shingara · Dec 21, 2010

Use the #entries method in criteria to do request:

@items = Item.all.entries