如何在我的模型类中摆脱这种情况

时间:2011-04-05 14:35:44

标签: ruby-on-rails-3

我有一个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?

1 个答案:

答案 0 :(得分:0)

Q1。该值很可能在输入时转换为0.0,而不是在您访问时。

Q2。您需要将字段类型更改为字符串类型,以便能够在其中存储文本。