我已经尝试了Devise gem的默认配置,用户可以使用那里的电子邮件地址登录,并且它的工作完美。 在我的情况下,我不需要使用registration_number(其他电子邮件地址)给用户登录但当我尝试使用registration_number签署一个新用户时,它只对数据库插入密码这是我从日志文件中获取的查询
User Exists (0.4ms) SELECT 1 AS one FROM `users` WHERE `users`.`registration_number` = BINARY '114150C' LIMIT 1
SQL (49.6ms) INSERT INTO `users` (`encrypted_password`) VALUES ('$2a$10$Fp3HCYszDjEDkl0DHCBCLuI9RttOaAQE2pi2xcTSkaMU9QNbW/8D6')
所以我做的是 (按照此处和其他一些堆栈站点的说明) 1.运行迁移以将用户电子邮件列的名称更改为registration_number 2.相应地更改config / initializers / devise.rb(替换:email with:registration_number) 3.在lib目录中创建user_sanitizer.rb,如下所述 将此代码放入其中
class User::ParameterSanitizer < Devise::ParameterSanitizer
private
def account_update
default_params.permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
end
end
尝试了this以及
答案 0 :(得分:1)