Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails Validate no White Space in User Name

I want to validate that a user name has no white/blank spaces for my Users. Is there a built in validation that does this? Or what is the best way to do this. Seems like it would be a pretty common requirement.

like image 619
yellowreign Avatar asked Aug 16 '13 19:08

yellowreign


2 Answers

I would try format validator:

validates :username, format: { with: /\A[a-zA-Z0-9]+\Z/ }

as most of the time when you don't want whitespaces in username you also don't want other characters.

Or when you really only need to check for whitespace, use without instead:

validates :username, format: { without: /\s/ }

Full documentation: http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html#method-i-validates_format_of (validates ... format: {} is the same as validates_format_of ...)

like image 153
MBO Avatar answered Sep 27 '22 17:09

MBO


I believe you will have to create a custom validator:

validate :check_empty_space

def check_empty_space
  if self.attribute.match(/\s+/)
    errors.add(:attribute, "No empty spaces please :(")
  end
end
like image 34
MurifoX Avatar answered Sep 27 '22 17:09

MurifoX