Skip to content
This repository was archived by the owner on Mar 14, 2025. It is now read-only.

Commit e9a1239

Browse files
authored
Merge pull request #157 from loftwah/dl/username-fix
Dl/username fix
2 parents 5669444 + 5365cbe commit e9a1239

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

app/models/user.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class User < ApplicationRecord
1313
has_many :link_clicks, dependent: :destroy
1414
has_many :achievement_views, dependent: :destroy
1515

16+
VALID_USERNAME_REGEX = /\A[a-zA-Z0-9_]+\z/
17+
18+
validates :username, presence: true, uniqueness: true, format: { with: VALID_USERNAME_REGEX, message: 'can only contain letters, numbers, and underscores' }
19+
1620
validates :username, uniqueness: true, allow_blank: true
1721
validates :full_name, presence: true
1822
validate :ensure_username_presence

spec/models/user_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
# spec/models/user_spec.rb
21
require 'rails_helper'
32

43
RSpec.describe User, type: :model do
54
describe 'validations' do
65
it { should validate_presence_of(:email) }
7-
it { should validate_uniqueness_of(:username).allow_blank }
6+
it { should validate_uniqueness_of(:username) } # Removed .allow_blank
87
it { should validate_presence_of(:full_name) }
98
end
109

@@ -67,4 +66,4 @@
6766
expect(user.parsed_tags).to eq(['ruby', 'rails'])
6867
end
6968
end
70-
end
69+
end

0 commit comments

Comments
 (0)