【问题标题】:Ruby On Rails map 2 database columns to 2D JSON arrayRuby On Rails 将 2 个数据库列映射到 2D JSON 数组
【发布时间】:2012-07-20 14:55:54
【问题描述】:

我正在尝试使用 Ruby on Rails ActiveRecord 调用从数据库中获取两列数据,并将它们放入 2D JSON 数组中以传递给客户端。

我让它为一列工作。现在我需要让它为 2 列工作。

这是我迄今为止对数据库调用所做的:

select("TOTAL").map{|x| x.TOTAL.ceil}

这就是我的控制器:

@results = JSON.dump({ :totals => PerformanceResults.find_totals })

这给了我这样的东西: {“总数”[145,132,863,693,372,74,838,91,18,172,84,90,373,161,160,173,1910,210,513,14,79,21,84,41,2630,0,93,150,2971]}

要获得两列,这是我开始的方式,但进展不顺利:

数据库调用:

select("TOTAL, time_stamp ").map{|x| x.attributes.slice(:x.TOTAL.ceil, x.time_stamp)}

它告诉我“:x:Symbol 的未定义方法 `TOTAL'”,我理解,但由于我是 Ruby on Rails 和 JSON 的新手,所以我想我会寻求一些帮助。 ..

我的目标是将其传递给客户端:{"totals" [['timestamp', data], ['timestamp', data], etc...]}

【问题讨论】:

    标签: json activerecord ruby-on-rails-3.1


    【解决方案1】:

    我已经使用以下方法自行解决了这个问题,供以后寻找此解决方案的人使用。

    select("TOTAL, time_stamp ").map{|x| [x.TOTAL.ceil, x.time_stamp]}
    

    【讨论】:

      【解决方案2】:

      在 Rails 控制台中,要获取多个列,您还可以使用以下方法。假设您有一个 User 表,并且您希望打印用户的 id 和电子邮件,您必须按如下所示进行:

      User.all.map{|user| "#{user.id},#{user.email}"}
      

      这是上面已经解释的替代方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-05
        • 1970-01-01
        相关资源
        最近更新 更多