表格的输入在插入时转换为十进制

时间:2011-02-09 23:02:06

标签: ruby-on-rails

我有一个db列,用于将upc代码设置为postgres中的“数字”数据类型。

我生成了脚手架以将值输入到此表中,但是rails由于某种原因正在转换FLOAT中的输入,

例如,13位数字条目1234567890000转换为1234567890000.0

来自日志:

INSERT INTO“upc_codes”(“upccode”)VALUES(1234567890000.0)返回“id”

正在设置或不设置SQL语句的数据类型在哪里?

3 个答案:

答案 0 :(得分:0)

此列使用的数据类型是什么?尝试在迁移中将列类型更改为整数:

change_column :upc_codes, :upc_code, :integer

答案 1 :(得分:0)

mysql整数的最大整数值应为2147483647。 我认为这可能会在某处造成错误。

尝试将coulm更改为 bigint

不过,根据我的经验,最好使用rails中的字符串处理bignum(以这种方式你可以轻松地改变数据库)。您可以随后在代码中使用to_i。

抱歉我的英语。

答案 2 :(得分:0)

当您将列类型设置为NUMERIC时,您是否指定了这样的精度/比例:NUMERIC(13,0)? (13是精度,0是比例)

我再次提交这个作为答案,因为我想我应该回答的时候发表了评论。