
[英]When do I use save!, create! and update_attributes! in Rails?
[英]Why ActiveRecord validates all columns of Model when use update_attributes or save
我有密码验证,其长度必须大于6;
has_secure_password
validates :password, length: {minimum: 6}
当我保存一个对象时它会工作;
但是当我想像这样更新对象时它也可以工作:
model.update_attributes(key:value)
即使我也不想更新密码栏
这是铁轨规则之一吗?
这是预期的行为。
ActiveRecord :: Persistence# update
:
从传入的哈希值更新模型的属性并保存记录,所有记录都包装在事务中。 如果对象无效,则保存将失败,并且将返回false 。
也别名为:
update_attributes
要跳过验证,可以选择使用update_attribute
:
更新单个属性并保存记录。 这对于现有记录上的布尔标志特别有用。 另请注意
跳过验证。
回调被调用。
如果该列可用,则
updated_at
/updated_on
列将更新。更新此对象中所有脏的属性。
如果属性标记为只读,则此方法引发
ActiveRecord::ActiveRecordError
。另请参见
update_column
。
另一个选择是传递validate: false
作为参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.