Ho ottenuto attr_encrypted lavorando con Mongo e Mongoid. Bastano poche modifiche.
Assicurati che tutti i campi cifrati_ che vengono creati automaticamente da attr_encrypted siano creati in modo esplicito nel modello. Ad esempio, se hai:
attr_encrypted :email, :key => 'blah blah blah', :encode => true
devi avere:
field :email, :type => String
field :encrypted_email, :type => String
Nota anche che devi dirgli di codificare la stringa crittografata altrimenti Mongo si lamenterà ad alta voce.
Infine, se stai crittografando un hash, procedi come segue:
field :raw_auth_hash, :type => Hash
field :encrypted_raw_auth_hash, :type => String
attr_encrypted :raw_auth_hash, :key => 'blah', :marshal => true, :encode => true