0

我跟着这个:https ://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address

哪个有效。所以现在我可以使用 :username 和 :password 或 :email 和 :password 登录。

但是,当我在控制台中创建帐户时,如果我将电子邮件留空,则会收到验证错误。显然电子邮件仍然需要创建用户。

我希望能够仅使用 :username 和 :password 或 :email 和 :password 创建用户。

4

1 回答 1

2

请尝试将以下内容添加到您的用户模型中:

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
于 2012-07-07T11:40:03.973 回答