我遵循了这个:https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address
哪个有效。 所以现在我可以使用 :username 和 :p assword 或 :email 和 :p assword 登录。
但是,当我在控制台中创建帐户时,如果我将电子邮件留空,则会收到验证错误。 显然,创建用户仍然需要电子邮件。
我希望能够仅使用 :用户名和 :p assword,或 :email 和 :p assword 创建一个用户。
请尝试将以下内容添加到您的用户模型中:
def email_required?
false
end
您可能还需要创建一个迁移,以允许用户表上的电子邮件列为空(如果它不是允许空列):
change_column :users, :email, :string, :null => true
编辑:
您剩下要做的就是确保至少存在用户名或电子邮件。您可以通过设置以下验证语句来执行此操作:
validate :username_or_email_is_present
def username_or_email_is_present
if self.username.blank && self.email.blank?
errors.add(:base, "Email or Username must be set")
end
end