Max*_*xxx 2 activerecord ruby-on-rails rails-migrations ruby-on-rails-6
我刚刚意识到我的列类型需要是小数而不是整数
我可以直接在 seeds.rb 中进行更改吗?还是我应该做其他事情?
另外,如果我打算在小数点后添加一个字母,我该怎么做?
例子: 2.0L, 2.5L, 5.7L, etc.
如果您想在数据库中存储字母,则该列类型不能是小数或整数。字符串字段更适合您的情况。我假设你的主要问题是关于小数的。
如果您确实想更改数据库中的列类型,则应该使用Migrations来完成。在终端的应用程序目录中,运行bin/rails g migration changeFieldNameFromIntegerToDecimal:
这将生成一个文件名中带有时间戳的迁移文件,其中有一个更改方法告诉rails您要如何更改数据库。在该更改方法中,输入:
def change
change_column :table_name, :column_name, :decimal, precision: :8, scale: :2
end
Run Code Online (Sandbox Code Playgroud)
精度和比例选项执行以下操作(来自上面的链接):
precision:定义小数字段的精度,表示数字中的总位数。
比例:定义小数字段的比例,表示小数点后的位数。
如果要将其转换为字符串,则迁移文件将包含:
def change
change_column :table_name, :column_name, :string
end
Run Code Online (Sandbox Code Playgroud)
最后bin/rails db:migrate从应用程序目录中的终端运行以执行迁移。
| 归档时间: |
|
| 查看次数: |
7158 次 |
| 最近记录: |