【发布时间】:2012-09-02 08:16:00
【问题描述】:
我希望 Devise 身份验证使用登录而不是电子邮件并跳过电子邮件验证,但保留密码验证。如何做到这一点?
【问题讨论】:
标签: ruby-on-rails validation devise passwords
我希望 Devise 身份验证使用登录而不是电子邮件并跳过电子邮件验证,但保留密码验证。如何做到这一点?
【问题讨论】:
标签: ruby-on-rails validation devise passwords
要更改设计用于身份验证的模型属性,您需要查看 devise.rb 文件中的“任何身份验证机制的配置”部分。你至少需要改变
config.authentication_keys = [ :email ]
到
config.authentication_keys = [ :login ]
你可能想改变
config.case_insensitive_keys = [ :email ]
到
config.case_insensitive_keys = [ :login ]
您还应该查看 apneadiving 提供的链接,因为它解释了如何在一个模型中进行这些更改,而不是为所有模型进行更改(这就是更改 devise.rb 所做的)。
要更改设计用于验证电子邮件的正则表达式,您可以将 config.email_regexp 属性更改为您想要的任何内容 - 例如".*" 将允许任何人使用 ANYTHING 作为登录名,所以我不建议这样做。
【讨论】:
解释了所有内容here,尤其是如何摆脱电子邮件(见底部)。
【讨论】: