我们有两列需要声明为t.integer size(1) and size(2).
即最大尺寸为1(即最大9),最大尺寸为2(即最大99)。我应该如何在我的迁移脚本中声明这一点。
答案 0 :(得分:16)
您的意思是该列中的值应限制在1-99范围内吗?
创建整数列后,您可以将ActiveRecord验证添加到模型中:
validates_numericality_of :field_name, :in => 1..99
答案 1 :(得分:-4)
您应该能够在迁移记录上设置:限制。请查看此处的文档 - 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