让用户能够使用电子邮件地址或用户名登录的最佳方式是什么?我正在使用典狱长+设备进行身份验证。我认为这可能不会太难,但我想我需要一些关于在哪里放置所有需要的东西的建议。也许设计已经提供了这个功能?就像在 config/initializers/devise.rb 中一样,您可以编写:
config.authentication_keys = [ :email, :username ]
需要用户名和电子邮件进行登录。但我真的希望只有一个字段用于用户名和电子邮件,并且只需要其中之一。我将用一些 ASCII 艺术来想象,它在 View 中应该看起来像这样:
Username or Email:
[____________________]
Password:
[____________________]
[Sign In]
最佳答案
我已经找到了问题的解决方案。我对它不太满意(我宁愿有一种方法在初始化程序中指定它),但它现在可以工作。在用户模型中我添加了以下方法:
def self.find_for_database_authentication(conditions={})
find_by(username: conditions[:email]) || find_by(email: conditions[:email])
end
正如 @sguha 和 @Chetan 所指出的,another great resource is available on the official devise wiki .
关于ruby-on-rails - RoR设计: Sign in with username OR email,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997179/