我试图从数据库中获取两列数据,使用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)}
它告诉我“未定义的方法`TOTAL”for:x:Symbol“,我理解,但由于我是Ruby on Rails和JSON的新手,我想我会在这方面寻求帮助。 ..
我的目标是将此传递给客户:{“总计”[['时间戳',数据],['时间戳',数据等等......]}
答案 0 :(得分:1)
我已经使用以下内容解决了这个问题,以备将来寻找此解决方案的人使用。
select("TOTAL, time_stamp ").map{|x| [x.TOTAL.ceil, x.time_stamp]}
答案 1 :(得分:1)
在rails控制台中,要获取多个列,还可以使用以下方法。假设您有一个用户表,并且您希望打印用户的ID和电子邮件,您必须按如下所示进行操作:
User.all.map{|user| "#{user.id},#{user.email}"}
这是上面已经解释过的替代方案。