【问题标题】:How to get the resultant array from a Mongoid::Criteria without an "each" block如何从没有“每个”块的 Mongoid::Criteria 获取结果数组
【发布时间】:2011-05-28 18:38:46
【问题描述】:

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

【问题讨论】:

    标签: arrays mongoid criteria


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      使用条件中的#entries 方法进行请求:

      @items = Item.all.entries
      

      【讨论】:

      • 你好 shingara,反之亦然吗?我的意思是将数组转换为 Mongoid::Criteria。
      【解决方案3】:

      实际上,我正在应用的解决方案是在一个数组中进行转换,所以我仍然可以使用标准的力量,然后得到结果。转换成数组后,就可以在json中转换了

      @items.to_a #给你记录

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-05
        • 1970-01-01
        相关资源
        最近更新 更多