• 就是 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 的做法只是在上面打补丁而已。