簡體   English   中英

返回值數組而不是Rails中SQL查詢的對象數組

[英]Return array of values instead of array of objects from SQL query in Rails

我在Rails模型中有一個SQL查詢,它使用一組對象進行響應。 每個對象都有一個名為points的屬性值。

但其優選的查詢,以僅返回的陣列points[10,15,5]代替[object,object,object]這需要再出提取點到另一個陣列是有益的。

模型文件

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

這可以在查詢本身中執行,還是在外部的方法中執行?

我沒有太多經驗將原始SQL查詢寫入Rails方法,所以任何指導都將非常感激。

您可以使用pluck將點轉換為數組

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

這里的points是要拔除的列名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM