尝试将 rails 设计中的身份验证字段更改为用户名
Trying to change the authentication fields in devise for rails to username
我正在尝试修改设计以使用用户名字段而不是电子邮件来进行身份验证。我已经添加了用户名属性,我可以使用现有用户的用户名成功登录,但由于某种原因,现在当我尝试注册新用户时,出现错误 "Email can't be blank".
我的设计表单包含电子邮件和用户名字段。
我按照此处的说明进行操作: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 这里还有什么需要做的吗?
我不确定从哪里开始寻找开始调试这个或者我是否需要生成设计控制器..
万一有人遇到这个问题,我可以自己解决这个问题。根据 Strong Parameters 上的设计文档,sign_up 方法将仅允许身份验证密钥 + password/password 确认。所以我们必须告诉它允许:电子邮件,但这可以在应用程序控制器中完成。
下面的代码大部分来自同一个设计文档,因此您可以在那里阅读更多相关信息。我们可以使用前置过滤器来允许您可能需要的任何非身份验证密钥。
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
我正在尝试修改设计以使用用户名字段而不是电子邮件来进行身份验证。我已经添加了用户名属性,我可以使用现有用户的用户名成功登录,但由于某种原因,现在当我尝试注册新用户时,出现错误 "Email can't be blank".
我的设计表单包含电子邮件和用户名字段。
我按照此处的说明进行操作: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 这里还有什么需要做的吗?
我不确定从哪里开始寻找开始调试这个或者我是否需要生成设计控制器..
万一有人遇到这个问题,我可以自己解决这个问题。根据 Strong Parameters 上的设计文档,sign_up 方法将仅允许身份验证密钥 + password/password 确认。所以我们必须告诉它允许:电子邮件,但这可以在应用程序控制器中完成。
下面的代码大部分来自同一个设计文档,因此您可以在那里阅读更多相关信息。我们可以使用前置过滤器来允许您可能需要的任何非身份验证密钥。
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