0

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

4

1 回答 1

1

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

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

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

于 2013-10-26T21:28:57.727 回答