首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Rails中的SQL查询返回值数组而不是对象数组

从Rails中的SQL查询返回值数组而不是对象数组
EN

Stack Overflow用户
提问于 2016-05-08 05:23:01
回答 1查看 2.1K关注 0票数 3

我在Rails模型中有一个SQL查询,它使用一个对象数组进行响应。每个对象都有一个名为points的属性,该属性具有一个值。

但是更好的方法是,查询只返回一个points数组,比如[10,15,5],而不是[object,object,object],后者要求将点提取到另一个数组中才有用。

模型文件

代码语言:javascript
复制
LAST_3_SELECT = "
  SELECT
    (
      (data.ap / (data.apa * 1.0))
      +
      (data.vp / (data.vpa * 1.0))
    )
    / 2 * 1.5 * data.level
    AS points
  FROM data
  WHERE data.user_id = ?
  GROUP BY data.id
  ORDER BY data.created_at DESC
  LIMIT 3
"

def self.last_3(user_id)
  connection.select_all(sanitize_sql_array( [LAST_3_SELECT, user_id]), "last-3")
end

这可以在查询本身中执行,还是有必要在查询之外的方法中执行?

我没有在Rails方法中编写原始SQL查询的经验,因此非常希望提供任何指导。

EN

回答 1

Stack Overflow用户

发布于 2016-05-08 05:34:57

您可以使用拔毛将点获取到数组中

代码语言:javascript
复制
def self.last_3(user_id)
  connection.select_all(sanitize_sql_array( [LAST_3_SELECT, user_id]), "last-3").pluck(:points)
end

这里,points是要拔出的列名

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37096515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档