我正在使用gem client_side_validation在客户端一次验证多个电子邮件地址。它适用于除电子邮件格式之外的所有验证。它也正确验证了电子邮件格式(我不能将不规则的地址保存到数据库),但不能在客户端 - 当我尝试提交不规则的电子邮件地址时页面重新加载。有谁知道哪里可能有问题?如果需要,我会上传更多文件。
这是config/application.rb
档案:
...
module EmailValidation
class Application < Rails::Application
config.autoload_paths << "#{config.root}/lib"
...
...
config.active_record.raise_in_transactional_callbacks = true
end
end
这是public/javascripts/rails.validations.customValidators
档案:
clientSideValidations.validators.local["email_format"] = function(element, options){
if(!/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i.test(element.val())) {
return options.message;
}
}
这是lib/email_format_validator.rb
档案:
class EmailFormatValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
value.split(/,\s*/).each do |value|
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors.add(attribute, :email_format, options)
end
end
end
end
这是Invitation
型号:
class Invitation < ActiveRecord::Base
validates :message, presence: true, length: { minimum: 3 }
validates :email, presence: true, length: {minimum: 3}
validates :email, email_format: true
end