0

我试图从数据库中获取两列数据,使用 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.... ]}

4

2 回答 2

1

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

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

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

于 2012-11-30T06:33:15.453 回答
1

对于将来寻找此解决方案的任何人,我已经使用以下方法自行解决了这个问题。

select("TOTAL, time_stamp ").map{|x| [x.TOTAL.ceil, x.time_stamp]}
于 2012-07-20T15:06:56.287 回答