我有一個安裝程序,其中有10個接受浮動軌道形式的屬性。每個屬性也與我的模型中的值相關聯。如果在表單中輸入多個屬性的數字,我需要創建一個加權平均值。使用Ruby on Rails從布爾值計算平均值
一個例子是如果我有10個產品,每個產品在我的模型中都有價格。在表格中,用戶可以輸入每種產品的數量(產品數量)。我想爲已輸入金額的產品計算加權價格。
那麼如何創建一個加權平均值來檢查哪些產品有輸入金額?
我有一個安裝程序,其中有10個接受浮動軌道形式的屬性。每個屬性也與我的模型中的值相關聯。如果在表單中輸入多個屬性的數字,我需要創建一個加權平均值。使用Ruby on Rails從布爾值計算平均值
一個例子是如果我有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
檢查此求助加權平均
此代碼檢索您的手機型號是真正的所有屬性:
@model = Model.find(params[:id)
@model.attributes.select{|k,v| (v.is_a?(TrueClass) || v.is_a?(FalseClass)) && v}
如果你想在真假難辨只是做一個:
@model.attributes.select{|k,v| (v.is_a?(TrueClass) || v.is_a?(FalseClass)) && !v}
不知道這是否是你是什麼尋找,但也許它可以清除你的頭一點點。
謝謝,雖然我不知道如何應用它。我想它會告訴我哪個布爾值(如果多於一個)被選中,但不確定如果此代碼返回所有屬性,我如何指定布爾部分。 – sacshu
你如何識別所有字段選擇? 你發送所有的參數或只選擇一個的 – PriteshJ
我現在發送所有參數,不知道如何只發送選定的 – sacshu
您使用的是CGI,還是這個代碼運行在Rails或Sinatra或類似的東西?他們可以通過返回數組值來提供幫助,使得循環你想要的數據變得微不足道。你如何設置你的表單可以在這裏幫助。 –