From 128757a7f97b3dc0bf2efd4fac49dc0eaa0af04c Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 29 Feb 2016 17:05:36 -0500 Subject: Properly check for a pre-existing error in `User#namespace_uniq` Rails adds an empty error to the Errors object even if you just call `#[]` on it: ``` [1] pry(main)> u = User.last [2] pry(main)> u.errors.keys => [] [3] pry(main)> u.errors[:username].present? => false [4] pry(main)> u.errors.keys => [:username] ``` --- app/models/user.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 6baf2468ade..913a32854ac 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -372,7 +372,8 @@ class User < ActiveRecord::Base def namespace_uniq # Return early if username already failed the first uniqueness validation - return if self.errors[:username].include?('has already been taken') + return if self.errors.key?(:username) && + self.errors[:username].include?('has already been taken') namespace_name = self.username existing_namespace = Namespace.by_path(namespace_name) -- cgit v1.2.1