gpt4 book ai didi

ruby - Rails 4 自定义验证器说明

转载 作者:数据小太阳 更新时间:2023-10-29 08:47:36 24 4
gpt4 key购买 nike

我在 rails 指南 ( http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations ) 中进行了自定义验证,我无法理解这里发生了什么。如何使用 EmailValidator?它在哪里被调用?

class EmailValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
record.errors[attribute] << (options[:message] || "is not an email")
end
end
end

class Person < ActiveRecord::Base
validates :email, presence: true, email: true
end

比如所有代码都去了哪里?

最佳答案

你执行 validates 方法传递一个散列。传递散列时,此方法对其进行迭代,并为每个键实例化名称与给定键匹配的验证器。因此,如果您传递 presence: true,它会实例化 PresenceValidator 的新实例,类似地,confirmation: true 会实例化 ConfirmationValidator。如果不是 true,value 是一个散列,它被传递给验证器并存储在实例变量 @options 中,它由 options 访问> 读者。

关于ruby - Rails 4 自定义验证器说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22947174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com