Performance: Uniqueness validation
Uniqueness validation affects server response time and database query performance during record creation or update.
add_index :users, :email, unique: true
validates :email, uniqueness: { case_sensitive: false, scope: :account_id }
# rely on DB constraint for final enforcementvalidates :email, uniqueness: true
| Pattern | Database Queries | Server Response Time | Race Condition Risk | Verdict |
|---|---|---|---|---|
| Rails validation only | 1 extra query per validation | Higher due to query overhead | Possible race conditions | [X] Bad |
| DB unique index + Rails validation | Minimal queries, relies on DB | Lower, faster response | Race conditions prevented | [OK] Good |
validates :email, uniqueness: true do in a Rails model?validates :email, uniqueness: true means Rails will check that the email is unique before saving.validates :field, uniqueness: true for uniqueness validation.class User < ApplicationRecord validates :email, uniqueness: true end
class Product < ApplicationRecord validates :code, uniqueness: true validates :code, presence: true end
code, race conditions can allow duplicates.uniqueness: { case_sensitive: false }.Pass the test and this pattern moves unknown