ruby-on-rails - 设计使用用户名而不是电子邮件进行身份验证

标签 ruby-on-rails devise

我是 Devise 的新手,通过使用电子邮件地址作为身份验证 key ,它可以正常工作。但是,我有一个需要用户名的用例,但我似乎无法让它工作。

我在 users 表中添加了一个字符串列“username”,将登录表单中的字段从 :email 更改为 :username ,并且在我去的时候将 devise.rb 中的身份验证 key 更改为 :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 ]

最佳答案

在您的 config/initializers/devise.rb 中取消注释 config.authentication_keys = [ :email]并将其更改为 config.authentication_keys = [ :username ]
更新:
你的表格不正确。
更改f.email_fieldf.text_field

关于ruby-on-rails - 设计使用用户名而不是电子邮件进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866667/

相关文章:

ruby-on-rails - 从 rails 隐藏字段中删除包装 div

ruby-on-rails - 添加图像以设计 Mailer 模板

ruby-on-rails - 空字符串作为枚举类型列的默认值,而不是 Rails 中的 nil

ruby-on-rails-3 - 使用保留字时的友好 ID 和设计错误

ruby-on-rails - 仅对 Rails 3.1 中的图像使用 asset_host 过程

ruby-on-rails - 仅为特定角色运行 Capistrano 任务

ruby-on-rails - Rails 设备 : Generating encrypted_password values (for test users)

ruby-on-rails - 设计编辑注册无法正常工作

ruby-on-rails-3 - Rails 3 设计手动更改密码

ruby-on-rails - "No verification key available"尝试访问由 Devise JWT 保护的 API 时