单个属性分类验证
个人理解:对于大规模,大量重复使用的字段,我们可以将这些字段的验证抽出,单独成类使用,如下:
# 单个字段类
class EmailValidator < ActiveModel::EachValidator
# 这里定义 validate_each 方法
def validate_each(record,attr,value)
unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
record.errors[attr] << '邮箱格式不正确'
end
end
end
class User < ApplicationRecord
validates :email, email: true
# 调用方式 字段: true 即可打开
end
PS: 它和单个类验证是对应的
网友评论