Rails 4:修改现有模型列

时间:2013-10-26 21:19:49

标签: ruby ruby-on-rails-4

当我在现有模型中有一个名为“fullname”的列时,我想设置一个限制为50个字符以存储在该列中。实现这一目标的最佳方法是什么?使用rails migrate?或在app / models中编写代码来进行语法检查?

1 个答案:

答案 0 :(得分:1)

你应该真的做到这两点。您希望数据库强制执行数据限制,因为这可以防止应用程序代码中的任何错误允许无效数据。创建rails迁移以更改列的数据类型。例如......

change_table :table_name do |t|
  t.change :column_name, :string, :limit => 50
end

您还应该确保应用程序代码中的数据少于50个字符,否则如果您尝试插入大于50个字符的值,则会出错。执行此操作的rails方式将是模型中的Active Record Validation。有关Active Record验证的信息,请参阅this链接