为什么我不能在rails迁移中设置float的精度和比例?

时间:2017-08-03 06:42:49

标签: mysql ruby-on-rails

运行此迁移后,我的geo_latitude和geo_longitude列的类型为“float”(无精度和比例)。我可以直接运行sql查询并将类型更改为float(10,6),那么为什么迁移会忽略我的精度和比例参数呢?

def change
  add_column :item_exifs, :geo_latitude, :float, precision: 10, scale: 6, null: false, default: 0
  add_column :item_exifs, :geo_longitude, :float, precision: 10, scale: 6, null: false, default: 0
end

1 个答案:

答案 0 :(得分:1)

尝试将类型更改为十进制,

def change
  add_column :item_exifs, :geo_latitude, :decimal, precision: 10, scale: 6, null: false, default: 0
  add_column :item_exifs, :geo_longitude, :decimal, precision: 10, scale: 6, null: false, default: 0
end

某些活动记录版本根据使用的数据库有几种奇怪的行为

Float vs Decimal in ActiveRecord

请参阅@Rokibul Hasan和@ ryan0答案