класс ActiveRecord::Encryption::EncryptedAttributeType
Класс, который шифрует/расшифровывает строки текста.
Это центральный элемент, который связывает систему шифрования с объявлениями атрибутов в классах моделей. Когда вы объявляете атрибут как зашифрованный, он настраивает шифрование для этого атрибута.
Атрибуты
cast_type[R]
scheme[R]
Открытые методы класса
# File activerecord/lib/active_record/encryption/encrypted_attribute_type.rb, line 23 def initialize(scheme:, cast_type: ActiveModel::Type::String.new, previous_type: false) super() @scheme = scheme @cast_type = cast_type @previous_type = previous_type end
Параметры
-
:scheme- Объект, содержащий свойства шифрования для этого атрибута. -
:cast_type- Тип, который будет использоваться для сериализации (перед шифрованием) и десериализации (после расшифрования). По умолчанию используетсяActiveModel::Type::String.
Вызывает метод суперкласса
Открытые методы экземпляра
# File activerecord/lib/active_record/encryption/encrypted_attribute_type.rb, line 42 def changed_in_place?(raw_old_value, new_value) old_value = raw_old_value.nil? ? nil : deserialize(raw_old_value) old_value != new_value end
# File activerecord/lib/active_record/encryption/encrypted_attribute_type.rb, line 30 def deserialize(value) cast_type.deserialize decrypt(value) end
# File activerecord/lib/active_record/encryption/encrypted_attribute_type.rb, line 34
def serialize(value)
if serialize_with_oldest?
serialize_with_oldest(value)
else
serialize_with_current(value)
end
end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.