就是 context 呗,这个功能以前就有,valid?
也可以传 context,只是 save
不行。现在 Rails 把它做得更完善了而已。如果 Rails 4.x 要做针对某个 domain 的校验就得这么写:
# Trigger domain validations only
if model.valid?(on: :some_domain)
# Skip common validations
model.save(validate: false)
end
不过说实话,这种把所有 validations 都放到 model 里面本身方向就错误了,Rails 的做法只是在上面打补丁而已。