4

我们有两列需要声明为t.integer size(1) and size(2). 最大大小为 1(即最多 9)和最大大小为 2(即最多 99)。我应该如何在我的迁移脚本中声明这一点。

4

2 回答 2

17

您的意思是该列中的值应限制在 1-99 范围内吗?

创建整数列后,您可以向模型添加 ActiveRecord 验证:

validates_numericality_of :field_name, :in => 1..99
于 2012-11-21T17:24:27.370 回答
-7

您应该能够在迁移记录上设置 :limit。在这里查看文档——http: //api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html#method-i-column

例如:add_column :my_tbl, :myint, :integer, :limit => 9

这将设置一个列长度——换句话说,它只允许长度不超过 9 位的整数。

如果要限制此列的数据输入,则需要在模型中进行验证。看看http://guides.rubyonrails.org/active_record_validations_callbacks.html#length

于 2012-11-21T17:21:24.027 回答