Проверка зашифрованных данных
Я зашифровываю все личные данные пользователей перед сохранением в базе данных с помощью gem 'attr_encrypted'. Например, у меня есть таблица "email_addresses", которая содержит столбец "encrypted_email". Этот драгоценный камень расшифровывает данные, когда я вызываю object.email или когда я ищу по электронной почте. Но у меня есть проблемы с проверкой этой колонки.
У меня есть следующие проверки для этой и других таблиц:
validates_length_of :email, :within => 3..100
validates_numericality_of :post_code
Я должен как-то расшифровать данные перед проверкой, но я не знаю, как это сделать с помощью встроенных инструментов Rails. Я не хочу изобретать пользовательские проверки для этого. Пожалуйста, порекомендуйте.
1 ответ
Проверки, которым не нужен запрос БД, выполняются на стороне рельсов, поэтому вы можете передать метод вместо столбца методам проверки
validates :decrypted_email, length: { within: 3..100 }
def decrypted_email
# decrypt email here
end