내가 내 user.rb 모델에서 다음이 : 여러 가지 이유를 들어레일 - 컨트롤러에서 모델 검증에 호출하기위한 허용은
INVALID_EMAILS = %w(gmail.com hotmail.com)
validates_format_of :email, :without => /#{INVALID_EMAILS.map{|a| Regexp.quote(a)}.join('|')}/, :message => "That email domain won't do.", :on => :create
, 나는 확인하기 위해 내 컨트롤러에이 논리를 사용할 수 있도록하려면 위의 normall이 실행될 때 user.created가되기 전에 전자 메일의 입력.
어떻게하면 사용자가 아닌 다른 컨트롤러에서 호출 할 수있는 방법으로 바꿀 수 있습니까? 가능한?
그리고 false가 반환되면 오류를 발생시키고 싶습니다. 사용자가 이유를 알 수 있도록 추가 하시겠습니까?
감사합니다 시도
:
def validate_email_domain(emailAddy)
INVALID_EMAILS = %w(gmail.com googlemail.com yahoo.com ymail.com rocketmail.com hotmail.com facebook.com)
reg = Regexp.new '/#{INVALID_EMAILS.map{|a| Regexp.quote(a)}.join('|')}/'
self.errors.add('rox', 'Hey, Ruby rox. You have to say it !') unless reg.match attribute
end
업데이트 : 그 만들 것 때문에가
..
Rails.logger.info validate_email_domain(email)
...
def valid_email_domain(emailAddy)
reg = Regexp.new '/#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/'
return true if emailAddy.scan(reg).size == 0
end
누구나 아이디어가 있습니까? – AnApprentice