Module: Mongoid::Encryptable::ClassMethods

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Extended In:
Defined in: lib/mongoid/encryptable.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#encrypted?true | false (readonly)

Whether the model is encrypted. It means that either the encrypt_with method was called on the model, or at least one of the fields is encrypted.


  • (true | false)

    Whether the model is encrypted.

[ GitHub ]

# File 'lib/mongoid/encryptable.rb', line 36

def encrypted?
  !.empty? || fields.any? { |_, field| field.is_a?(Mongoid::Fields::Encrypted) }

Instance Method Details

#encrypt_with(options = {})

::Set the encryption metadata for the model. Parameters set here will be used to encrypt the fields of the model, unless overridden on the field itself.

is deterministic or not.


  • options (Hash) (defaults to: {})

    The encryption metadata.

Options Hash (options):

  • :key_id (String)

    The base64-encoded UUID of the key used to encrypt fields. Mutually exclusive with :key_name_field option.

  • :key_name_field (String)

    The name of the field that contains the key alt name to use for encryption. Mutually exclusive with :key_id option.

  • :deterministic (true | false)

    Whether the encryption

[ GitHub ]

# File 'lib/mongoid/encryptable.rb', line 27

def encrypt_with(options = {})
  self. = options


This method is for internal use only.

Override the key_id for the model.

This method is solely for testing purposes and should not be used in the application code. The schema_map is generated very early in the application lifecycle, and overriding the key_id after that will not have any effect.

[ GitHub ]

# File 'lib/mongoid/encryptable.rb', line 48

def set_key_id(key_id)
  self.[:key_id] = key_id