我有一个db列,用于将upc代码设置为postgres中的“数字”数据类型。
我生成了脚手架以将值输入到此表中,但是rails由于某种原因正在转换FLOAT中的输入,
例如,13位数字条目1234567890000转换为1234567890000.0
来自日志:
INSERT INTO“upc_codes”(“upccode”)VALUES(1234567890000.0)返回“id”
正在设置或不设置SQL语句的数据类型在哪里?
答案 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是比例)
我再次提交这个作为答案,因为我想我应该回答的时候发表了评论。