Active Record 验证¶ ↑
Active Record 从 ActiveModel::Validations 中包含了大部分验证功能。
在 Active Record 中,默认情况下所有验证都在保存时执行。 Validations 接受 :on 参数来定义验证激活的上下文。 Active Record 会根据模型是 new_record? 还是已存在记录,传入 :create 或 :update 的上下文。
命名空间
方法
实例公共方法
save(**options) Link
可以通过传递 validate: false 来跳过保存时的验证过程。可以通过传递 context: context 来改变验证上下文。当包含 validations 模块时(默认就是如此),它会替换掉原始的 ActiveRecord::Base#save 方法。
save!(**options) Link
尝试保存记录,与 ActiveRecord::Base#save 类似,但如果记录无效,则会抛出 ActiveRecord::RecordInvalid 异常,而不是返回 false。
valid?(context = nil) Link
在指定上下文中运行所有验证。如果没有发现错误则返回 true,否则返回 false。
别名为 validate。
如果参数是 false(默认为 nil),则如果 new_record? 为 true,上下文将设置为 :create;如果为 false,则上下文设置为 :update。如果参数是上下文数组,例如 post.valid?([:create, :update]),则会在多个上下文中运行验证。
没有 :on 选项的验证将不受上下文影响而运行。带有 :on 选项的验证仅在指定的上下文中运行。
Also aliased as: validate