尝试将rails中的身份验证字段更改为用户名

时间:2015-02-22 22:10:03

标签: ruby-on-rails-4 devise username

我试图修改设计以使用用户名字段而不是电子邮件进行身份验证。我已经添加了用户名属性,我可以使用现有用户的用户名成功登录,但由于某种原因,当我尝试注册新用户时,我收到错误"电子邮件可以'是空白"。

我的设计表单包含电子邮件和用户名的字段。

我按照这里的说明操作:https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-with-something-other-than-their-email-address,除了我在rails 4上,所以attr_accessible已被弃用。还有什么东西需要在rails 4中完成吗?

我不确定从哪里开始调试这个或者我是否需要生成设计控制器..

1 个答案:

答案 0 :(得分:0)

如果有人遇到这个问题,我能够自己解决这个问题。根据{{​​3}}上的设计文档,sign_up方法仅允许验证密钥+密码/密码确认。所以我们必须告诉它允许:电子邮件,但这可以在应用程序控制器中完成。

下面的代码主要来自相同的设计文档,因此您可以在那里阅读更多相关信息。我们可以使用before过滤器来允许您可能需要的任何非身份验证密钥。



class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :email
  end
end
&#13;
&#13;
&#13;