我试图修改设计以使用用户名字段而不是电子邮件进行身份验证。我已经添加了用户名属性,我可以使用现有用户的用户名成功登录,但由于某种原因,当我尝试注册新用户时,我收到错误"电子邮件可以'是空白"。
我的设计表单包含电子邮件和用户名的字段。
我按照这里的说明操作: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中完成吗?
我不确定从哪里开始调试这个或者我是否需要生成设计控制器..
答案 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;