Разработать: разрешить пользователям регистрироваться как «UsErNaMe», но входить с «username»

Точно так же, как работает большинство веб-сайтов, я должен был хранить "UsErNaMe" в базе данных, но разрешить пользователям входить в систему с «именем пользователя».

Это довольно очевидная и необходимая функция, и многие люди, кажется, спрашивали об этом, но решение, на которое я все время натыкаюсь, похоже, не связано с собственной документацией Devise.

Например, рассмотрим этот блог:http://anti-pattern.com/2011/5/16/case-insensitive-keys-with-devise

[...]you’ve probably run into the problem that some users like to type certain letters in their logins (email and/or username) in uppercase, but expect it to be case-insensitive when they try to sign in. A not unreasonable request[...]

Здорово! Это то, что я хочу.

Его решение:

<code># config/initializers/devise.rb
Devise.setup do |config|
  config.case_insensitive_keys = [:email, :username]
end
</code>

Это решение, которое я продолжаю находить. Но вот документация для этого параметра конфигурации:

<code># Configure which authentication keys should be case-insensitive.
# These keys will be downcased upon creating or modifying a user and when used
# to authenticate or find a user. Default is :email.
config.case_insensitive_keys = [ :username, :email ]
</code>

В частности: & quot; эти ключи будут уменьшены при создании / изменении пользователя. & Quot; Другими словами, имя пользователя сокращается в базе данных.

Проверять:

<code>User.create username: "UsErNaMe", password: "secret", email: "[email protected]"
#=> <User username="username"...>
</code>

Я что-то упускаю до боли?

Ответы на вопрос(1)

Ваш ответ на вопрос