私はattr_encryptedをMongoとMongoidで動作させました。ほんの少しの調整が必要です。
attr_encryptedによって自動的に作成されるすべてのencrypted_フィールドが、モデルで明示的に作成されていることを確認してください。たとえば、次の場合:
attr_encrypted :email, :key => 'blah blah blah', :encode => true
必要なもの:
field :email, :type => String
field :encrypted_email, :type => String
また、暗号化された文字列をエンコードするように指示する必要があることに注意してください。そうしないと、Mongoは大声で文句を言います。
最後に、ハッシュを暗号化する場合は、次のようにします。
field :raw_auth_hash, :type => Hash
field :encrypted_raw_auth_hash, :type => String
attr_encrypted :raw_auth_hash, :key => 'blah', :marshal => true, :encode => true