-2
我按照這篇文章來實現用戶註冊或者用電子郵件或用戶名。 https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address設計使用電子郵件或手機註冊用戶沒有
User.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, authentication_keys: [:login]
attr_accessor :login
def login=(login)
@login = login
end
def login
@login || self.contact_no || self.email
end
def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions.to_hash).where(["lower(contact_no) = :value OR lower(email) = :value", { :value => login.downcase }]).first
elsif conditions.has_key?(:contact_no) || conditions.has_key?(:email)
where(conditions.to_hash).first
end
end
Devise.rb
config.authentication_keys = [ :login ]
但仍然得到錯誤的電子郵件不能爲空「。我怎樣才能解決這個問題?我哪裏錯了?
@Reopen Vote Reviewers - 目標重複已被刪除。如果它自己站立,請考慮重新開放此問題,否則請刪除它。 – robinCTS