哪个有效。所以现在我可以使用 :username 和 :password 或 :email 和 :password 登录。
但是,当我在控制台中创建帐户时,如果我将电子邮件留空,则会收到验证错误。显然电子邮件仍然需要创建用户。
我希望能够仅使用 :username 和 :password 或 :email 和 :password 创建用户。
哪个有效。所以现在我可以使用 :username 和 :password 或 :email 和 :password 登录。
但是,当我在控制台中创建帐户时,如果我将电子邮件留空,则会收到验证错误。显然电子邮件仍然需要创建用户。
我希望能够仅使用 :username 和 :password 或 :email 和 :password 创建用户。
请尝试将以下内容添加到您的用户模型中:
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