diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ef7cf401..44ecd154 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -103,6 +103,8 @@ def unlock_achievements end def user_params - params.require(:user).permit(:accepted_coc, :aoc_id, :city_id, :entered_hardcore, :event_awareness, :favourite_language, :username) + params + .require(:user) + .permit(:accepted_coc, :aoc_id, :city_id, :entered_hardcore, :event_awareness, :favourite_language, :username) end end diff --git a/app/models/user.rb b/app/models/user.rb index 929864eb..734d13bd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -34,6 +34,8 @@ class User < ApplicationRecord validate :referrer_must_exist, on: :update, if: :referrer_id_changed? validate :referrer_cannot_be_self, on: :update + before_validation :blank_language_to_nil + scope :admins, -> { where(uid: ADMINS.values) } scope :confirmed, -> { where(accepted_coc: true, synced: true).where.not(aoc_id: nil) } scope :insanity, -> { where(entered_hardcore: true) } @@ -162,6 +164,12 @@ def batch_cannot_be_changed errors.add(:batch, "can't be changed") end + def blank_language_to_nil + return if favourite_language.present? + + self.favourite_language = nil + end + def referrer_must_exist errors.add(:referrer, "must exist") unless User.exists?(referrer_id) end