2016-04-17 10 views
2

E-Mail-Feld im Benutzermodell ist mit attr_encrypted verschlüsselt. Wenn ich einen neuen Benutzer mit devise und facebook omniauth erstelle, wird dieser eigentlich in DB gespeichert. Außerdem kann ich diese Daten mit User.last.email #=> [email protected] abrufen.'find_by' und 'where' funktioniert nicht mit attr_encrypted

Aber es gibt Null oder [] zurück, wenn ich User.find_by_email("[email protected]") oder User.where(email: "[email protected]") verwende.

user.rb

class User < ActiveRecord::Base 
    attr_encrypted :email, key: Settings.encryption.key 
end 

Antwort

1

Wenn Sie das attr_encrypted Juwel verwenden, glaube ich email virtueller Bereich und ist tatsächlich in der users Tabelle als encrypted_email Feld beibehalten.

Wie sieht Ihre schema.rb Datei für die Tabelle users aus?

Wenn dies der Fall ist, ich glaube, Sie müssen nur

User.find_by_encrypted_email("[email protected]") 

statt

User.find_by_email("[email protected]") 

Gem Dokumentation verwenden: https://github.com/attr-encrypted/attr_encrypted

Viel Glück!

Verwandte Themen