我有一个设置,其中有 10 个属性接受 rails 形式的 float 。每个属性还与我的模型中的一个值相关联。如果在表单中为多个属性输入了一个数字,我需要创建一个加权平均值。
例如,如果我有 10 种产品,每种产品在我的模型中都有一个价格。在表单中,用户可以输入每种产品的数量(产品数量)。我想为那些输入了金额的产品计算加权价格。
那么我如何创建一个加权平均值来检查哪些产品输入了金额?
最佳答案
columns_names = ['a','b','c','d'] # array of name of the columns
obj = Model.find(:id) # find the object with id
# loop and get column values that are set
values = columns_names.inject([]) do |arr,column_name|
arr << obj.column_name if params[column_name].eql?"true" # collect the values if the column set
arr
end
#get average
if values.blank?
# no column selected
else
avg = values.reduce(:+)/values.size
end
检查这个以获得加权平均的帮助
关于ruby - 使用 Ruby on Rails 计算 bool 值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114167/