0
我有一個數據庫與汽車的尺寸大小 因此,用戶可以寫一些像2.5(如升)或2500(cc) 後來我有一個排序,它應該使用999 -9999的值來比較Rails保存前轉換整數值
我想出了下面的函數,但我希望它更靈活。而且,現在2.5導致2000的結果,因爲看起來像Rails在觸發前轉換值before_save
如何進行轉換並檢測輸入中是否有點或逗號?
before_save :covert_engine
private
def covert_engine
if self.car_engine_size.present?
if Math.log10(self.car_engine_size).to_i + 1 < 4
self.car_engine_size = self.car_engine_size * 1000
end
end
end
P.S. self.car_engine_size是數據庫中的整數
http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/BeforeTypeCast.html – max