Разработайте аутентификацию с помощью имени пользователя вместо электронной почты
Я новичок в разработке, и он отлично работает, используя адрес электронной почты в качестве ключа аутентификации. Тем не менее, у меня есть вариант использования, который требует имя пользователя вместо этого, и я, кажется, не могу заставить его работать.
Я добавил столбец, строку "имя пользователя" в таблице "пользователи", изменены поля :электронный адрес :имя пользователя в регистрационной форме, и изменили ключ аутентификации при разработке.rb to: имя пользователя но когда я иду, чтобы войти в систему, меня встречает следующее приглашение: "пожалуйста, введите адрес электронной почты адрес".
Что я делаю не так?
**new.html.erb**
<div><%= f.label :username %><br />
<%= f.email_field :username %></div>
**User.rb**
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :authentication_keys => [:username]
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :username
# attr_accessible :title, :body
end
**devise.rb**
config.authentication_keys = [ :username ]
2 ответа:
В вашем config / initializers / devise.RB раскомментируйте
config.authentication_keys = [ :email]
и измените его наconfig.authentication_keys = [ :username ]
Обновление:
Неправильные формы.
Изменитьf.email_field
наf.text_field
- прежде всего, убедитесь, что вы выполнили миграцию.
bundle exec rake db:migrate
- Создание представлений для разработки, в противном случае дивизия будет использовать значения по умолчанию.
rails generate devise:views
Измените Devise / views, Как вы хотите (замените поле email на поле username)
Перезагрузите веб-сервер
Надеюсь, это поможет!