16 lines
		
	
	
		
			371 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			371 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'mail'
 | 
						|
 | 
						|
module EmailValidatable
 | 
						|
  extend ActiveSupport::Concern
 | 
						|
 | 
						|
  class EmailValidator < ActiveModel::EachValidator
 | 
						|
    def validate_each(record, attribute, value)
 | 
						|
      begin
 | 
						|
        a = Mail::Address.new(value)
 | 
						|
      rescue Mail::Field::ParseError
 | 
						|
        record.errors[attribute] << (options[:message] || "is not a valid address")
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |