[英]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.