class User < ApplicationRecord has_secure_password belongs_to :company validates :username, presence: true, uniqueness: { case_sensitive: false } validates :email, presence: true, uniqueness: { case_sensitive: false }, format: { with: URI::MailTo::EMAIL_REGEXP } validates :password, length: { minimum: 6 }, if: -> { new_record? || password.present? } validates :company_id, presence: true before_save :downcase_username_and_email def self.find_by_login(login) find_by(username: login.downcase) || find_by(email: login.downcase) end private def downcase_username_and_email self.username = username.downcase.strip if username.present? self.email = email.downcase.strip if email.present? end end