Fix db:seed - only run some validations when the field was changed (#3592)
* Fix db:seed - only run some validations when the field was changed * Add tests
This commit is contained in:
parent
b87eb8ea14
commit
c207b4bb33
5 changed files with 23 additions and 6 deletions
|
@ -52,13 +52,17 @@ class Account < ApplicationRecord
|
|||
has_one :user, inverse_of: :account
|
||||
|
||||
validates :username, presence: true
|
||||
validates :username, uniqueness: { scope: :domain, case_sensitive: true }, unless: :local?
|
||||
|
||||
# Remote user validations
|
||||
with_options unless: :local? do
|
||||
validates :username, uniqueness: { scope: :domain, case_sensitive: true }, if: :username_changed?
|
||||
end
|
||||
|
||||
# Local user validations
|
||||
with_options if: :local? do
|
||||
validates :username, format: { with: /\A[a-z0-9_]+\z/i }, uniqueness: { scope: :domain, case_sensitive: false }, length: { maximum: 30 }, unreserved: true
|
||||
validates :display_name, length: { maximum: 30 }
|
||||
validates :note, length: { maximum: 160 }
|
||||
validates :username, format: { with: /\A[a-z0-9_]+\z/i }, uniqueness: { scope: :domain, case_sensitive: false }, length: { maximum: 30 }, unreserved: true, if: :username_changed?
|
||||
validates :display_name, length: { maximum: 30 }, if: :display_name_changed?
|
||||
validates :note, length: { maximum: 160 }, if: :note_changed?
|
||||
end
|
||||
|
||||
# Timelines
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue