我在数据库迁移文件中有这些字符串/文本字段:
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
这些是我的问题:
我理解,这些问题对某些人来说似乎并不重要,但仍然 - 这是对输入的验证,这是任何应用程序都需要的 - 而且我认为在这里相当偏执是值得的。
答案 0 :(得分:5)
问题很好,也许对rails / mysql内部有更多了解的人可以扩展更多。
1)在模型中进行任何验证取决于您希望在超出限制的情况下发生故障的位置。该模型是最佳选择,因为它最有可能覆盖使用该模型的大多数对象。 其他替代方法是使用maxlength属性简单地限制表单字段。
第一个选项不适用于可选字段。
2)我不知道任何经验法则。使用你知道的最长的东西,并使它更大。
3)我的规则是255以上的任何内容都是文本。您可以在Here
上找到更多相关信息4)如果列中包含相同的内容 - 可能有值。某些用例可能具有不同的maxlength,具体取决于内容类型或用户。
上述所有因素也受到项目中严格的数据验证要求的影响。