Вы можете искать таким образом
в модели пользователя переопределяет метод поиска:
def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
email = conditions.delete(:email)
pwd = conditions.delete(:password)
encrypted_pwd = User.new(password: pwd).encrypted_password
where(conditions).where(["lower(email) = :email AND encrypted_password = :pwd", { :email => email.strip.downcase, :pwd => encrypted_pwd }]).first
end
И, вероятно, для config / initializers / devise.rb потребуется что-то вроде:
config.authentication_keys = [ :email, :password ]