验证加密数据

时间:2014-08-07 09:23:44

标签: ruby-on-rails validation activerecord encryption attr-encrypted

我在使用gem' attr_encrypted'帮助存储到数据库之前加密了用户的所有私人数据。例如,我有' email_addresses'表格,其中包含“encrypted_email'柱。当我调用object.email或通过电子邮件搜索时,此gem会解密数据。但是我对此专栏的验证存在问题。

我对此表和其他表进行了以下验证:

validates_length_of :email, :within => 3..100
validates_numericality_of :post_code

我应该在验证之前以某种方式解密数据,但是我不知道如何借助内置的Rails工具来实现这一点。我不想为此发明自定义验证。请建议。

1 个答案:

答案 0 :(得分:0)

不需要在rails端运行db查询的验证,因此您可以将方法而不是列传递给验证方法

validates :decrypted_email, length: { within: 3..100 }

def decrypted_email
  # decrypt email here
end