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