mysql - 为什么我无法设置 Rails 迁移中 float 的精度和比例?

标签 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

最佳答案

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

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 的回答

关于mysql - 为什么我无法设置 Rails 迁移中 float 的精度和比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45476720/

相关文章:

Mysql - 按自定义顺序?

python - 类型错误 : 'str' object is not callable when insert tweet data to mysql Python 3

php - 大数按位运算符

ruby-on-rails - 使用 Resque 重新排队作业

ruby-on-rails - 使用 capybara 和 rspec 删除测试失败

ruby-on-rails - 帮助理解 validates_each Rails 助手

mysql - mysql 数据库中新字段的交替默认值

ruby-on-rails - 在created_at日期上添加6天

javascript - j(render(@partial))返回错误:ActionController::UnknownFormat

mysql - 不匹配的记录重定向到错误表?