Проверка зашифрованных данных

Я зашифровываю все личные данные пользователей перед сохранением в базе данных с помощью 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
Другие вопросы по тегам