레일 가이드 (http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations)에서 사용자 정의 유효성 검사를 진행하고 있으며 여기에 무슨 일이 일어나는지 이해하는 데 어려움이 있습니다. EmailValidator는 어떻게 사용됩니까? 어디에서 부름을 받았습니까?레일 4 사용자 정의 유효성 검사기 명확화
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
모든 코드는 어디에 있습니까?
어디에서 EmailValidator 코드를 배치합니까? 그 설명을 어디에서 얻었습니까? 나는 그것에 대해 더 많이 읽고 싶다. – Mulaiko
@Mulaiko - 레일의 아름다움은 문서가 아닌 코드를 실제로 읽을 수 있다는 것이다. 여기에 다음 두 가지를 모두 읽을 수 있습니다 : http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates (끝에 작은 Source : hide | GitHub 비트가 있습니다.) – BroiSatse
@ Mulaiko - 유효성 검사기를 넣을 위치와 관련하여 - 자동로드 경로에있는 폴더에 이들을 넣어야합니다. 개인적으로 lib/validator에 넣으십시오 (application.rb의 autoload path에 추가해야합니다). 어떤 사람들은 – BroiSatse