题 如何在没有“each”块的情况下从Mongoid :: Criteria获取结果数组


我们的应用程序使用ajax非常重,因此我们有类似的语句 var items = #{@items.to_json} 在我们所有的观点中。现在 @items 正在控制器中设置为 @items=Item.all。问题是 @items 是一个 Mongoid::Criteria 它没有 .to_json 方法。因此,渲染视图时会出现错误。是否有一种简单的方法可以将此条件对象转换为数组,而无需使用类似的代码 @items.collect {|i| i}


28
2017-12-21 11:26


起源




答案:


使用 #entries 要求的标准方法:

@items = Item.all.entries

59
2017-12-21 13:12



谢谢,这工作:) - Khaja Minhajuddin
您好shingara,能以相反的方式工作吗?我的意思是将数组转换为Mongoid :: Criteria。 - Gagan
不,你不能那样做。 - shingara
总是很高兴学习新东西 - WebQube
这让我错误地调用该方法 - inquisitive


实际上,我正在应用的解决方案是转换为数组,因此我仍然可以使用标准的强大功能,然后获得结果。转换为数组后,可以在json中进行转换

@ items.to_a#给你记录

@ items.to_a.to_json#给你最后的json


3
2017-12-21 22:35





FWIW,至少从Mongoid 4.0开始,就有了 as_json 实例方法:

Person.where(:title => "Sir").as_json

参考: http://rdoc.info/github/mongoid/mongoid/Mongoid/Criteria#as_json-instance_method


1
2017-07-02 19:44