Eu tenho attr_encrypted trabalhando com Mongo e Mongoid. Leva apenas alguns ajustes.
Certifique-se de que todos os campos criptografados_ criados automaticamente por attr_encrypted sejam criados explicitamente no modelo. Por exemplo, se você tiver:
attr_encrypted :email, :key => 'blah blah blah', :encode => true
você precisa ter:
field :email, :type => String
field :encrypted_email, :type => String
Observe também que você precisa dizer a ele para codificar a string criptografada, caso contrário, o Mongo reclamará em voz alta.
Por fim, se você estiver criptografando um hash, faça o seguinte:
field :raw_auth_hash, :type => Hash
field :encrypted_raw_auth_hash, :type => String
attr_encrypted :raw_auth_hash, :key => 'blah', :marshal => true, :encode => true