我對 ruby?? on rails 很陌生,所以我可能缺少一些語法。大局我正在嘗試獲取指定百分位數的值。從概念上講,我正在獲取我的表“分數”,對其進行排序,獲取最后一個“x”值,然后獲取第一個值。我似乎無法弄清楚如何將基于資料集長度的“x”傳遞給鏈。
def get_percentile()
record_count = Scores.count(:id)*0.05
record_threshold = record_count.round()
Score_percentile = Scores.order(:points).last(record_threshold).first().points
return Score_percentile
end
get_percentile
如果我只是輸入 .last(20) 這會按我的預期作業,所以我只是不知道如何傳遞變數。謝謝。
uj5u.com熱心網友回復:
您可能會通過四舍五入將 a 傳遞給0您的.last()函式。
有多種選擇可確保您至少通過1
[record_threshold, 1].max會給你至少 1. https://apidock.com/ruby/Enumerable/max
在所有情況下都.round()改為四舍五入。https://apidock.com/ruby/Float/ceil.ceil()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452364.html
標籤:轨道上的红宝石
