Spec-Zone.ru › Ruby on Rails 7.0

класс ActiveRecord::Encryption::EncryptedAttributeType

Родитель:
ActiveRecord::Type::Text
Включенные модули:
ActiveModel::Type::Helpers::Mutable

Класс, который шифрует/расшифровывает строки текста.

Это центральный элемент, который связывает систему шифрования с объявлениями атрибутов в классах моделей. Когда вы объявляете атрибут как зашифрованный, он настраивает шифрование для этого атрибута.

Атрибуты

cast_type[R]
scheme[R]

Открытые методы класса

new(scheme:, cast_type: ActiveModel::Type::String.new, previous_type: false) Показать исходный код
# 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.

Вызывает метод суперкласса

Открытые методы экземпляра

changed_in_place?(raw_old_value, new_value) Показать исходный код
# 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
deserialize(value) Показать исходный код
# File activerecord/lib/active_record/encryption/encrypted_attribute_type.rb, line 30
def deserialize(value)
  cast_type.deserialize decrypt(value)
end
serialize(value) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API