我有一个ActiveRecord“ Car ”型号:
class Car < ActiveRecord::Base
def check_value
puts self.load_size #if user input is an alphabet letter, I got 0.0 here
end
...
end
“ Car ”模型中有一个属性“ load_size ”,在数据库中,“ load_size ”列是< strong> double 类型列。
有趣的是,在UI中,如果用户在“ load_size ”输入字段中输入字母(例如'a'),我的模型会自动转换为字母表值为0.0
换句话说,如果我的 CarsController.rb 执行类似Car.new({:load_size=>params[:load_size]})
的操作,并且用户输入params[:load_size]
为“ a ”,则模型,self.load_size
等于 0.0
关于上述问题,我有以下两个问题要问:
Q1 即可。是因为我在数据库中的“load_size”是一个“双重”类型,所以在汽车模型中,当我访问self.load_size
rails时会自动转换字母值到 0.0 ?
Q2 即可。由于我在“Car”模型中定义了验证方法,因此我希望获得原始用户输入值(例如“a”)而不进行任何转换。如何摆脱这个?如何获取用户输入值,而不是转换为0.0?
答案 0 :(得分:0)
Q1。该值很可能在输入时转换为0.0,而不是在您访问时。
Q2。您需要将字段类型更改为字符串类型,以便能够在其中存储文本。