Проверка подлинности Devise с использованием имени пользователя вместо адреса электронной почты

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

Я добавил строковый столбец «username» в таблицу пользователей, изменил поля с :email на :username в форме входа и изменил ключ аутентификации в devise.rb на :username еще когда Я иду, чтобы войти, меня встречает это приглашение: «Пожалуйста, введите адрес электронной почты».

Что я делаю не так?

**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 ]
18
задан rb512 4 November 2013 в 04:34
поделиться