登録時に大文字と小文字が区別されるため、受け入れられた回答は不完全です。たとえば、'username' と 'USERNAME' は両方とも正常に登録できますが、ログインできるのは最初の 1 つだけです。
大文字と小文字を区別しないキーを無効にしますconfig/initializers/devise.rb
(これはモデル固有の場合もあるため、こちらも確認してください):
config.case_insensitive_keys = []
find_first_by_auth_conditions
のメソッドを上書きしmodels/user.rb
ます:
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:username)
where(conditions).where(["lower(username) = :value", { :value => login.downcase }]).first
else
where(conditions).first
end
end
...そして以下にもvalidates_uniqueness_of
設定models/user.rb
:
validates_uniqueness_of :username, :case_sensitive => false
大文字と小文字を区別しない認証、大文字と小文字を区別しない登録、データベースで大文字と小文字を保持します。