1

我有一个 Rails 应用程序,我在其中使用 Devise 进行身份验证。Devise 允许用户单击以获取包含重置密码链接的电子邮件。

我的问题是“用户”表中不需要电子邮件字段。有一个登录字段进行身份验证,它是从另一个系统中提取的。我无法将电子邮件设置为必需。

如果未设置电子邮件,我想验证电子邮件字段并向用户返回自定义消息。如果是,则 Devise 将继续并重置密码。

我在另一篇文章中看到,我必须覆盖方法“email_required?” 在用户模型中,但我仍然收到错误消息“电子邮件不能为空白”。

def email_required?
  false
end
4

1 回答 1

0

在您的用户模型中,您可能应该像这样对电子邮件进行某种验证

validates_presence_of :email

此外,如果您想迁移数据库以使电子邮件不为空,那就是这样

change_column :users, :email, :string, :null => false 
于 2013-01-08T22:18:07.777 回答