如何覆盖/设置authlogic以使用电子邮件字段而不是用户名字段进行注册和身份验证,对于某些注册方案,用户名+电子邮件偶尔会过于激烈
答案 0 :(得分:11)
如果您只是删除login
列并添加email
列,则authlogic将完成剩下的工作。
对于所有可选/必需的数据库列,请参阅此示例readme。
答案 1 :(得分:11)
更好的答案尝试这个......好吧,如果需要更新authlogic gem!
user_session.rb
class UserSession < Authlogic::Session::Base
find_by_login_method :find_by_email #for example or you can make what ever method see exapmle 2
end
--- 示例2
user_session.rb
class UserSession < Authlogic::Session::Base
find_by_login_method :find_by_anything
end
user.rb
class User < ActiveRecord::Base
acts_as_authentic
def self.find_by_anything(login)
find_by_login(login) || find_by_email(login) || find_by_id(login)
end
end
答案 2 :(得分:3)
由于亚当的评论包含了对这个问题的一个很好的答案。将其添加到您的用户模型:
class User < ActiveRecord::Base
acts_as_authentic do |c| c.login_field = :email end
end