【发布时间】:2009-09-20 14:14:15
【问题描述】:
我必须使用 Rails 迁移创建数据库架构。
我有很多列,其中包含数量(公斤)和价格(货币)。
目前我用这个:
t.column :quantity, :decimal, :precision => 6, :scale => 3
t.column :value, :decimal, :precision => 6, :scale => 2
在生成器调用中,我使用quantity:decimal 来标识我的列。然后我手动将生成的t.decimal行改成上面的。
我不喜欢这样,因为在每次生成迁移后,我都必须手动编辑迁移脚本,而且我担心 DRY。 (如果价格必须包含四位而不是两位小数怎么办?)
是否可以创建一个我可以在迁移甚至生成器中使用的自定义列类型,如下所示:
t.quantity :quantity
t.price :value
PS:我是 Rails 菜鸟,如果这是一个愚蠢的问题,我很抱歉。
【问题讨论】:
-
“必须手动修复迁移脚本”到底是什么意思?
-
现在我只在生成器调用中使用“数量:十进制”。然后我必须编辑生成的迁移脚本并将“t.decimal :quantity”更改为上面的示例。 (使用泛型列类型,添加精度参数)