Wil*_*nes 39 database validation ruby-on-rails models
通常更好的做法(以及为什么)验证模型或数据库定义中的属性?
对于(一个微不足道的)例子:
在用户模型中:
validates_presence_of :name
Run Code Online (Sandbox Code Playgroud)
与迁移相比:
t.string :name, :null => false
Run Code Online (Sandbox Code Playgroud)
一方面,将其包含在数据库中似乎更能保证不会出现任何类型的坏数据.另一方面,将其包含在模型中会使事情更加透明,更易于理解,方法是将其分组到代码中.其余的验证.我也考虑过两者兼顾,但这似乎既不干,也不易维护.
ase*_*eem 47
我强烈建议在两个地方都这样做.在模型中执行此操作可以为您保存一个数据库查询(可能在整个网络中),该数据库查询基本上会出错,并且在数据库中执
小智 12
并且
validates_presence_of :name
Run Code Online (Sandbox Code Playgroud)
不一样的
t.string :name, :null => false
Run Code Online (Sandbox Code Playgroud)
如果只在数据库中设置NOT NULL列,则仍可以插入空值("").如果您使用的是模型validates_presence_of - 则不能.