Rails:检查解密数据的唯一性

时间:2018-02-04 08:27:38

标签: ruby-on-rails encryption

我有一个users表,其中包含encrypted_mobile_number字段。如何在不循环所有手机号码的情况下检查解密的mobile_number的唯一性?我正在使用MessageEncrptor进行数据的加密和解密。 api.rubyonrails.org/classes/ActiveSupport/MessageEncryptor.html

1 个答案:

答案 0 :(得分:3)

选项1 :覆盖阅读器

validates encrypted_mobile_number, uniqueness: true

def encrypted_mobile_number
  # ... 
  crypt.decrypt_and_verify(@encrypted_mobile_number)    
end

选项2 :创建唯一索引

add_index :users, :encrypted_mobile_number, unique: true