अधिक जटिल समाधान लेकिन पुन: प्रयोज्य और अधिक ठीक छोटाबीजवाला त्रुटि संदेश के साथ, जिसका मतलब है।
कस्टम सत्यापनकर्ता:
एप्लिकेशन/प्रमाणकों/username_convention_validator.rb
class UsernameConventionValidator < ActiveModel::EachValidator
def validate_each(record, field, value)
unless value.blank?
record.errors[field] << "is not alphanumeric (letters, numbers, underscores or periods)" unless value =~ /^[[:alnum:]._-]+$/
record.errors[field] << "should start with a letter" unless value[0] =~ /[A-Za-z]/
record.errors[field] << "contains illegal characters" unless value.ascii_only?
end
end
end
(सूचना यह अनुमति नहीं है - और गैर ascii अनुमति does not, पूर्णता खातिर '_।')
उपयोग:
validates_format_of: उपयोगकर्ता नाम,:
एप्लिकेशन/मॉडल/user.rb
validates :name,
:presence => true,
:uniqueness => true,
:username_convention => true
यह है कि मैं क्या लेकर आए हैं के साथ =>/^ [- az \ घ _] + $/ – atmorell
आप एक जवाब है, तो जो आपकी समस्या हल करता है, आपको इसे स्वीकार किए जाने के रूप में चिह्नित करना चाहिए। –