使用验证更新模型Rails 3.2

时间:2018-09-16 17:48:14

标签: ruby-on-rails ruby-on-rails-3 rails-activerecord activemodel

如何通过使记录经过所有必要的验证来更新rails中的记录?据我所知

record.update_attributes(update_hash) 

将跳过所有验证。 如何更新我的记录而不跳过验证?顺便说一下,我正在使用Rails 3.2。

2 个答案:

答案 0 :(得分:1)

在Rails 3.2中,方法update_attributes运行所有模型验证,只有 单数形式 update_attribute跳过验证。幸运的是,在Rails 4中,他们弃用了后者,而推荐使用update_columnsee commit)。

文档:

答案 1 :(得分:1)

update_attributes本身检查验证。 如果无法保存(由于验证错误或错误的查询),它将返回false。

内部update_attributes实际上会调用save方法本身,该方法会在保存到数据库之前检查验证。